【发布时间】:2017-09-30 09:22:12
【问题描述】:
我正在尝试实现全屏无限滚动背景效果,它必须在视口的整个高度和宽度上延伸。
这是demo。
我尝试过的解决方案是采用具有100vh 和100vw 视口的包装元素,然后在其中放置2 个divs,100% 的高度,具有相同的背景-图片和background-size: cover 属性。我使用的图片尺寸是:1,920px × 808px。
然后我在包装元素上应用了以下动画:
@keyframes infiniteScrollBg {
0% {
transform: translateY(0%);
}
100%{
transform: translateY(-100%);
}
}
但问题是在某些视口大小上,图像不能正确重复(因为background-size: cover 属性):
这是我尝试过的完整代码:
<div class="animated-scene">
<div class="animated-scene__frame animated-scene__frame-1"></div>
<div class="animated-scene__frame animated-scene__frame-2"></div>
</div>
还有css:
.animated-scene {
width: 100vw;
height: 100vh;
position: fixed;
min-height: 400px;
animation: infiniteScrollBg 50s linear infinite;
}
.animated-scene__frame {
width: 100%;
height: 100%;
background-size: cover;
background-color: #4277a3;
background-image: url('https://andreivictor.ro/codepen/fullscreen-infinite-scroll-bg/fullscreen-bg');
}
您对如何实现此效果有任何想法吗?
感谢您的帮助。
【问题讨论】:
标签: css css-animations translate-animation background-size