@samselikoff wrote:
We just put up a new free video where we build an
<AspectRatio>
component:https://embermap.com/video/let-s-build-an-aspectratio-component
Wanted to let everyone on here know about it
Here’s the code!
import Component from '@ember/component'; import { computed } from '@ember/object'; import { htmlSafe } from '@ember/string'; /* Example use: <AspectRatio @ratio='16:9'> // your content </AspectRatio> */ export default Component.extend({ tagName: '', ratio: null, style: computed('ratio', function() { let paddingBottom = this.get('ratio') .split(':') .map(str => +str) .reduce((prev, curr) => curr / prev); return htmlSafe(`padding-bottom: ${paddingBottom * 100}%`); }) });
<div class='relative' style={{style}}> <div class='absolute w-full h-full pin'> {{yield}} </div> </div>
Posts: 1
Participants: 1