在CSS中,使用JavaScript,如何将不同的Y位置百分比分配给layered background images,以便它们随着页面滚动而更新?
<style>
body {
background-image:
url(img/bg-pattern-01.png),
url(img/bg-pattern-02.png),
url(img/bg-pattern-03.png);
background-position:
center 45%,
center 50%,
center 55%;
}
</style>
字符串
所以在上面的例子中,百分比(45%,50%,55%)不是静态值,而是受页面垂直滚动位置的动态影响。可能是实际滚动百分比的混合或平均混合。
1条答案
按热度按时间5jdjgkvh1#
轻松视差滚动,相对于页面顶部和底部
我的问题得到了一个答案(我已经接受了),但是那个贡献者已经删除了他们的答案。这是一个很有帮助的答案,它展示了一种可行的方法。在看了这里的一些其他答案之后,我能够改进这些方法,并把我所设想的放在一起:
一个多层视差滚动背景,可以在任何窗口大小下可靠地显示,并且可以全部包含在HTML BODY元素中。(不需要花哨的DIV工作。)这个解决方案使用jQuery -不管你喜欢与否,它在这种情况下非常有用。
用于演示的图像资产:
Animation credit
注意事项:imgur目前不支持WebP,但如果使用WebP,文件大小可以大大减少-在我的测试中,WebP平均约为PNG和GIF静态背景大小的8%-对于那些担心视差背景图像计数的性能影响的人来说。导出为WebP时所有静态图像的总大小为193 KB。
字符串
关于这种方法,需要注意的主要一点是使用scrollTop和scrollBottom函数来偏移页面顶部和底部的背景的简单性。任何给定的感知层(例如
lay3
)都可以同时具有 * 顶部 * 和 * 底部 * 图像。我将 * 感知 * 层标记为
lay1
,lay2
等,以区别于CSS和脚本中的 * 有序 * 层。一些background-blend-mode效果被包括在内,以说明可以实现的结果,对于那些谁喜欢geeking出与这类事情。
更多的细节即将到来,但首先请浏览冗长的注解代码片段。代码本身实际上并不很复杂。
运行完代码片段后,建议点击【整页】,即可看到完整的效果。