滚动功能在滚动前激活

时间:2014-12-07 12:36:21

标签: javascript css

所以我在我的页面上有这个代码

的jQuery

  $(window).scroll(function(){
      if ($(this).scrollTop() > 785) {
          $('#navbar').addClass('fixed');
      } else {
          $('#navbar').removeClass('fixed');
      }
  });

CSS

.fixed {position:fixed; top:0; left:0;}

我的问题
当我加载页面#navbar似乎有.addClass(' fixed');在滚动之前。如果我在加载页面后只滚动1px,那么.removeClass(' fixed')激活并激活,直到我不低于785px。

如何在我加载页面时修复如此固定的不激活?

2 个答案:

答案 0 :(得分:1)

为什么不在加载时将其删除?

$(function() {  $('#navbar').removeClass('fixed');  }); // this should remove it on load
$(window).scroll(function() {
    if ($(this).scrollTop() > 785) {
        $('#navbar').addClass('fixed');
    } else {
        $('#navbar').removeClass('fixed');
    }
});

答案 1 :(得分:0)

在DOM加载后尝试“重置”状态,如下所示:

function _setClass() {
    if ($(window).scrollTop() > 785) {
        $('#navbar').addClass('fixed');
    } else {
        $('#navbar').removeClass('fixed');
    }
}

_setClass();
$(window).scroll(function(){
    _setClass();
});

$(function(){ _setClass() });

希望有所帮助。