我正在尝试在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).scroll
有html
,所以overflow:hidden
不起作用。我无法消除更改溢出,因为这会更改某些$(window).scroll
效果。
答案 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>