我正在使用jQuery mmenu向我的网站添加一个非画布菜单。在安装之前,我有一个滚动到顶部的按钮和一个向下滑动的导航栏,它依赖于从$(window).scrollTop();
获取偏移量来触发它们。我注意到mmenu似乎阻碍了找到窗口偏移的能力。当我运行以下代码时:
var offset = $(window).scrollTop();
$(window).scroll(function(){
console.log(offset);
});
并且,检查了Chrome DevTools的控制台,我注意到它确实输出了偏移量,但是无论窗口和滚动条的视觉位置如何,似乎都有一个设置为0的重写偏移量。
我尝试找到其他元素的偏移量,但我仍然在控制台中获得相同的输出。
最终,我希望能够做的是在用户向下滚动后触发滚动到顶部的按钮和向下滑动的导航栏。
我的代码如下:
$(window).scroll(function(){
/* slide-down navigation bar */
if($('.bar').css('z-index') == '30' && offset > 50 ){
$('#secondary-nav-wrap').addClass('slideDown');
}else{
$('#secondary-nav-wrap').removeClass('slideDown');
}
/* fade in jump to top button */
if (offset >= 200) {
$('#top-jump').fadeIn(400);
}else{
$('#top-jump').fadeOut(400);
}
});
答案 0 :(得分:0)
您的偏移量变量在页面加载时初始化,并且不会更改。这就是为什么它始终为0。
执行:
$(window).scroll(function(){
var offset = $(window).scrollTop();
console.log(offset);
});