requestAnimationFrame:视网膜显示器和辅助显示器之间的行为不同吗?

时间:2018-11-27 16:40:53

标签: javascript reactjs requestanimationframe

我正在构建一个React App,并使用requestAnimationFrame在视差库(Plx)控制的某些元素上应用特殊的CSS效果。

我的效果应动态应用于滚动事件,但eventListener不能顺利运行。当我实施RAF时,动画在第二台监视器上运行良好,但在Macbook显示屏上却运行异常(滞后效果)。

相同的浏览器,相同的选项卡,不刷新。

这是我开始循环的方式:

setTimeout(function () {

    var raf = window.requestAnimationFrame ||    
        window.webkitRequestAnimationFrame ||
        window.mozRequestAnimationFrame ||
        window.msRequestAnimationFrame ||
        window.oRequestAnimationFrame;

    var $window = $(window);

    var lastScrollTop = $window.scrollTop();

    if (raf) {
        loop();
    }

    function loop() {
        var scrollTop = $window.scrollTop();

        if (TextGalaxy.resetScrollSpeed) {
            return false;
        }

        if (lastScrollTop === scrollTop) {
            raf(loop);
            return false;
        } else {
            lastScrollTop = scrollTop;

            // fire scroll function if scrolls vertically
            TextGalaxy.updateScreenView();
            raf(loop);
        }
    }
}, 20);

有没有人知道可能是什么问题?

0 个答案:

没有答案