每次滚动时,jquery scrollTop()的总和

时间:2019-03-23 14:31:57

标签: javascript jquery html css

我正在尝试在scrollTop() < 442时添加一个类,因为事件没有触发,我试图console.log()的{​​{1}}值,控制台会打印出每次滚动的总和例如,我向下滚动200px,然后向上滚动100px,scrollTop()输出300。

代码如下:

console.log($('body').scrollTop())

我使用$('body').scroll(function(){ console.log($('body').scrollTop()); if($('body').scrollTop()<442){ $('nav').addClass('navz'); }else{ $('nav').removeClass('navz'); } }); 代替了$('body').scroll,因为$(window).scrollhtml,所以overflow:hidden不起作用。我无法消除更改溢出,因为这会更改某些$(window).scroll效果。

1 个答案:

答案 0 :(得分:0)

问题是您错误地将'body'用作滚动事件侦听器以及scrollTop()函数的选择器。

您应该改用$(window).scroll()$(document).scrollTop()

这是一个可行的示例:

// The window has a scroll event, not 'body'
$(window).scroll(function() {
  
  // The document has the scrollTop fn, not 'body'
  console.log($(document).scrollTop());
  
  if ($(document).scrollTop() < 442) {
    $('nav').addClass('navz');
  } else {
    $('nav').removeClass('navz');
  }
});
body {
    height: 300vh;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>