Javascript Jquery scrollTop()每次滚动时求和
当Javascript Jquery scrollTop()每次滚动时求和,javascript,jquery,html,css,Javascript,Jquery,Html,Css,当scrollTop()
scrollTop()<442
事件未启动时,我尝试添加一个类。我尝试console.log()
scrollTop()值,控制台打印每个滚动运动的总和,例如,我向下滚动200px,然后向上滚动100px和console.log($('body').scrollTop()
输出300
代码如下:
$('body').scroll(function(){
console.log($('body').scrollTop());
if($('body').scrollTop()<442){
$('nav').addClass('navz');
}else{
$('nav').removeClass('navz');
}
});
$('body')。滚动(函数(){
log($('body').scrollTop());
如果($('body').scrollTop(),问题是您错误地将'body'
用作scroll事件侦听器和scrollTop()函数的选择器
您应该使用$(window.scroll()
和$(document.scrollTop()
)
下面是一个工作示例:
//该窗口有一个滚动事件,而不是“body”
$(窗口)。滚动(函数(){
//文档具有滚动顶fn,而不是“正文”
log($(document.scrollTop());
if($(文档).scrollTop()<442){
$('nav').addClass('navz');
}否则{
$('nav').removeClass('navz');
}
});
正文{
高度:300vh;
}
你说的“总和”是什么意思,您正在输出两个值,只记录正文的scrollTop。scroll的实际元素是什么?HTML或body标记?不要同时使用这两个。您说您的HTML已溢出:隐藏,因此将事件侦听器添加到HTML元素没有意义。抱歉,我检查了我的代码,粘贴了错误的代码。我将更正它,但我只输出$('body').scrollTop()
console.log($('body').scrollTop())
您能创建一个简单的JSFIDLE/codepen示例来重现您的问题吗?我没有任何意义,可以打印总和,但从您发布的代码来看,没有任何错误迹象。