【发布时间】:2020-10-06 20:42:35
【问题描述】:
我试图使用基于 Google's Performant Parallaxing 的纯 CSS 创建视差效果。这涉及使用perspective、translateZ 和scale。它还涉及使用大量堆叠在一起的 PNG 图像“层”。但是,这些层存在问题。
在此示例中,仅显示了 PNG 图像的一层,因为它足以显示问题。这是问题的图片(div 左侧的空白)。
问题出现在以下情况:body的垂直滚动条可见,body的水平滚动条因溢出而隐藏,视差图像设置为100%的宽度。奇怪的是,只需将图像的宽度设置为 100vw 而不是 100% 即可解决此问题。这是显示问题的代码。
html, body {
margin: 0;
width: 100%;
height: 100vh;
overflow-x: hidden;
}
body {
perspective: 100px;
}
.background {
width: 100%;
height: 101vh;
background: url('https://i.pinimg.com/originals/13/17/ba/1317ba3fb0901d7b6be59f9c21d39d12.jpg');
transform: translateZ(-300px) scale(4);
}
<div class="background"></div>
为什么当宽度为 100% 而不是 100vw 时,图像上会出现空白间隙?
【问题讨论】:
标签: html css css-transforms parallax perspective