【发布时间】:2021-02-20 20:49:06
【问题描述】:
我正在我的网站(html、css、js)上构建多层视差效果。一切都很好,但我注意到我的视差效果在 Firefox 上效果很差,window.onscroll 似乎有点滞后,可以说刷新率很低。
这是我的 JS 实现:
document.addEventListener('DOMContentLoaded', function() {
const layers = document.querySelectorAll("[data-type='parallax']");
window.addEventListener('scroll', event => {
const topDistance = window.pageYOffset;
window.requestAnimationFrame(function() {
for (let i = 0; i < layers.length; ++i) {
const depth = layers[i].getAttribute('data-depth');
const movement = topDistance * depth;
const translate3d = 'translate3d(0, ' + movement + 'px, 0)';
layers[i].style.transform = translate3d;
}
})
});
});
我的html代码:
<div class="parallax-banner">
<div class="parallax-layer layer-1" data-type="parallax" data-depth="0.05"></div>
<div class="parallax-layer layer-2" data-type="parallax" data-depth="0.2"></div>
<div class="parallax-layer layer-3" data-type="parallax" data-depth="0.4"></div>
<div class="parallax-layer layer-4" data-type="parallax" data-depth="0.6"></div>
<div class="parallax-layer layer-5" data-type="parallax" data-depth="0.7"></div>
<div class="parallax-layer layer-6" data-type="parallax" data-depth="0"></div>
</div>
你遇到过吗?是典型问题吗?我该如何解决?
【问题讨论】:
-
在选项中启用平滑滚动?
-
是的,被选中
标签: javascript parallax