如何防止图像被裁剪
我正在尝试创建包含许多层的动画图片。
为了让图像在不同的屏幕上具有合适的比例,我使用了cover
CSS属性值(我已经为object-fit
图像和background-size
背景图像都尝试了它)。这就是为什么我的宽屏图像会被浏览器裁剪。
问题是,我的层在动画过程中被变换(主要是旋转和移动),因此有时会看到裁剪后的图像。
请参阅下面的示例。
如何预防?还是有其他的技巧?
body {
margin: 0;
padding: 0;
/*Just to imitate wide screen*/
width: 1000px;
height: 450px;
}
#container {
width: 100%;
height: 100vh;
/*Just to imitate wide screen*/
height: 100%;
overflow: hidden;
position: relative;
}
.layer {
height: 100%;
position: absolute;
width: calc(100% + 20px);
}
.layer img {
height: 100%;
width: 100%;
object-fit: cover;
}
.gulls {
animation: gulls ease-in-out 13s infinite alternate;
}
@keyframes gulls {
from {
transform: rotate(3deg) scaleX(0.95) skew(-10deg, -10deg);
}
to {
transform: rotate(-3deg) scaleX(1.05) skew(10deg, 10deg);
}
}
<div id="container">
<div class="layer">
<img src="https://firebasestorage.googleapis.com/v0/b/wedding-42174.appspot.com/o/animation%2Fsky.png?alt=media&token=25033588-d58c-4616-94e9-4974ec4157a4" alt="">
</div>
<div class="layer gulls">
<img src="https://firebasestorage.googleapis.com/v0/b/wedding-42174.appspot.com/o/animation%2Fgulls5.png?alt=media" />
</div>
</div>
目前我有:https://jsfiddle.net/koljada/c08qdw1m/
解决方案
首先,我必须说,您的鸟类图像比鸟类本身(周围有很多填充物)要大得多,因为我看到的整个图像是2048年/1934年……
无论如何,当您使用
object fit:cover he crop;
保存比例的图像。您可以使用
object-fit:scale-down;
For通过缩小图像,直到他进入父空间来保存比例。我在这里添加一个简单的示例,说明它是如何工作的:
希望这就是您要搜索的内容..
相关文章