我使用以下示例来检测滚动方向。但是,它似乎适用于每个滚动运动。有没有办法让它只在方向改变时才能运作?
var lastScrollTop = 0;
$(window).scroll(function(event){
var st = $(this).scrollTop();
if (st > lastScrollTop){
// downscroll code
} else {
// upscroll code
}
lastScrollTop = st;
});
答案 0 :(得分:0)
不确定。只需使用一个占位符变量来跟踪行进的最后一个方向,如果是匹配则返回false。
var lastScrollTop = 0;
var lastDirection = "";
$(window).scroll(function (event) {
var st = $(this).scrollTop();
if (st > lastScrollTop) {
lastScrollTop = st;
if (lastDirection === 'down') return false;
// downscroll code
console.log("scrolling down");
lastDirection = 'down';
} else {
lastScrollTop = st;
if (lastDirection === 'up') return false;
// upscroll code
console.log("scrolling up");
lastDirection = 'up';
}
});