0

我一直在用 JS+CSS 中的动画开发一个复杂的无限 2D 布局。除了在 iPhone 中滚动布局时图像会闪烁(我还没有在其他 iOS 中尝试过),我可以设法使一切正常工作。

我相信问题与改变滚动事件侦听器中容器的滚动有关,如下所示:

let main = document.getElementById('container');

main.addEventListener("scroll", event => {

    let viewportWidth = document.documentElement.clientWidth + 1;
    let viewportHeight = document.documentElement.clientHeight + 1;
    main.scrollLeft = checkLimits(main.scrollLeft, 0, 3500 - viewportWidth);
    main.scrollTop = checkLimits(main.scrollTop, 0, 2800 - viewportHeight);
    
});

我已经隔离了问题,在这里查看完整的代码

我做了很多测试:隔离main.scrollTopand main.scrollLeft,将它们放在setInterval/requestAnimationFrame而不是和事件侦听器中,甚至绝望的测试,比如使用"touchend"event 而不是"scroll")...但我无法摆脱闪烁,我会说它开始为立即执行第一条语句main.scrollLeft =ormain.scrollTop =

这是一个不可避免的错误吗?请帮忙!

4

0 回答 0