读完了这篇文章,我对更快的滚动效果感到非常兴奋。于是我开始实现Warry的方法,看看与使用滚动事件监听相比是否能提高性能:
window.addEventListener('scroll', function() {
console.log('Scrolling: ' + window.pageYOffset);
});
文章中的代码:
function loop() {
if (lastPosition == window.pageYOffset) {
requestAnimationFrame(loop);
return false;
} else lastPosition = window.pageYOffset;
console.log('Scrolling: ' + window.pageYOffset);
// make sticky calculations...
requestAnimationFrame(loop);
}
loop(); // start loop
这两段代码输出相同的(Y)偏移量,从性能上看似乎等效。所以我的问题是:这篇文章是正确的吗?
此外,
requestAnimationFrame
如何适应这个情况?我知道它告诉浏览器希望执行重新绘制。或者... position fixed 是否是唯一可行的方式?我对这个主题很感兴趣,因为我正在开发一个粘性元素插件。非常感谢您提供任何信息或建议!