滚动功能在滚动前激活

Scroll function activates before scrolling

本文关键字:滚动 激活 功能      更新时间:2023-09-26

所以我的页面上有这段代码

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。

如何修复,以便在加载页面时固定不激活?

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

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

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

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

希望有帮助。