我注意到使用$(window).scroll的jQuery滚动绑定会导致页面明显变慢。例如,我在我的页面上使用以下脚本,当我滚动过它们时,页面上的元素会改变样式:
$(window).scroll(function() {
var bottom_of_window = $(window).scrollTop() + $(window).height();
$('.ElementsToBeChanged').each(function() {
var bottom_of_object = $(this).offset().top + $(this).outerHeight();
if (bottom_of_window > bottom_of_object) {
//Add my styles
}
});
});
可以理解为网站一直在滚动时会导致网站变卡,但我还没有找到任何替代方案来触发当对象被滚过时的事件。这种在滚动时触发事件的网站似乎很常见;它们使用什么方法来避免这种卡顿?