我还没有找到解决我具体问题的方法。我的主菜单在点击时切换打开和关闭。我希望在用户从 当前 位置向上或向下滚动100px后,可选择关闭菜单。我需要从当前窗口位置计算+或 - 100px。场景:用户向下滚动页面的1/3并打开菜单,然后决定不点击任何内容,但继续向上或向下滚动页面。用户滚动100px后菜单应自动关闭。目前,菜单会在滚动时立即关闭,这很容易错误地完成。
$(window).on('scroll', function () {
if ($('.nav--column').is(':visible') && **user has scrolled +- 100px**) {
$('.nav--main-menu').find('a.level_one.current').removeClass('current');
$('.nav--column').removeClass('expanded');
}
});
答案 0 :(得分:0)
当用户点击打开菜单时,您可以存储当前的scrollTop
:
var LAST_SCROLL = $(window).scrollTop();
在您的代码中:
$(window).on('scroll', function () {
if ($('.nav--column').is(':visible') && Math.abs(LAST_SCROLL - $(window).scrollTop()) > 100) {
$('.nav--main-menu').find('a.level_one.current').removeClass('current');
$('.nav--column').removeClass('expanded');
}
});