我需要一个jQuery函数来在页面滚动时修复我的div。
我发现了这个:
var fixed = false;
var topTrigger = $('#sticker').offset().top;
$(document).scroll(function() {
if( $(this).scrollTop() >= topTrigger ) {
if( !fixed ) {
fixed = true;
$('#sticker').css({'position':'fixed', 'top':'0'});
}
} else {
if( fixed ) {
fixed = false;
$('#sticker').css({'position':'relative'});
}
}
});
现在,由于我不是jQuery的超级初学者,我试图浏览它并理解它。我唯一不理解的是与var:fixed
相关的事情。我试图删除与此相关的var和if语句,并且该函数完美运行。
我的问题:为什么那个变量存在,它是什么意思,它为整个函数添加了什么功能? 为什么我要将它保留在那里而不是删除与该变量相关的所有内容?
答案 0 :(得分:3)
滚动事件将在用户滚动时多次触发。如果您继续更改DOM属性,那么网站的性能可能会降低。
为避免多次应用样式,他们有一个名为fixed
的标志。因此,一旦用户滚动了特定高度,他们将触发更改要修复的DOM。之后他们不需要再次改变CSS样式。
仅当用户向后滚动小于阈值时,才需要再次更改样式。