我正在构建一个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);
有没有人知道可能是什么问题?