我有一个父元素,该元素的形状是从横向到纵向,反之亦然。父元素包含一个图像,该图像随着其父元素改变形状而变得失真。我希望图像保持正确的比例,例如保持在父级的中间,而在边缘处被切除。
这类似于图像使用object-fit
保持比例的方式,但是我不能在这里使用它,因为父级使用了变换动画来避免布局抖动。
我的问题的简化示例:
const parent = document.querySelector('.parent');
parent.addEventListener('click', () => {
parent.animate(
[
{ transform: 'scale(1, 1)' },
{ transform: 'scale(0.5, 1.5)' }
],
{
duration: 560,
fill: 'forwards',
}
);
});
html, body {
height: 100%;
}
.container {
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
<div class="container">
<figure class="parent">
<img src="https://placeimg.com/560/320/arch">
</figure>
</div>
什么是解决这个问题的好方法?