滚动检测多次滚动

时间:2014-08-30 19:01:45

标签: javascript events scroll scrolltop

我使用以下示例来检测滚动方向。但是,它似乎适用于每个滚动运动。有没有办法让它只在方向改变时才能运作?

var lastScrollTop = 0;
$(window).scroll(function(event){
   var st = $(this).scrollTop();
   if (st > lastScrollTop){
       // downscroll code
   } else {
      // upscroll code
   }
   lastScrollTop = st;
});

1 个答案:

答案 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';
    }

});