jQuery语法添加了var

时间:2015-04-10 08:20:05

标签: javascript jquery

我需要一个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语句,并且该函数完美运行。

我的问题:为什么那个变量存在,它是什么意思,它为整个函数添加了什么功能? 为什么我要将它保留在那里而不是删除与该变量相关的所有内容?

1 个答案:

答案 0 :(得分:3)

滚动事件将在用户滚动时多次触发。如果您继续更改DOM属性,那么网站的性能可能会降低。

为避免多次应用样式,他们有一个名为fixed的标志。因此,一旦用户滚动了特定高度,他们将触发更改要修复的DOM。之后他们不需要再次改变CSS样式。

仅当用户向后滚动小于阈值时,才需要再次更改样式。