jquery 判断滚动方向 向上还是向下


$(window).on('scroll',function(e){})
如果用jquery判断 滚动 是向上还是向下吗。
看着原生的判断好像有点麻烦。

jquery滚动条 滚动条 HTML JavaScript

元気致上的米嫁 10 years, 4 months ago

原生的病不会很麻烦啊,给一个原生的示例吧(可直接在当前页面控制台中运行查看效果),原理就是判断滚动前后的 scrollTop 来判断到底是上滚还是下滚。懂了原理之后不管是原生的还是 jQuery 的就都 OK 了:


 scroll(function(direction) { console.log(direction) });    
function scroll( fn ) {
    var beforeScrollTop = document.body.scrollTop,
        fn = fn || function() {};
    window.addEventListener("scroll", function() {
        var afterScrollTop = document.body.scrollTop,
            delta = afterScrollTop - beforeScrollTop;
        if( delta === 0 ) return false;
        fn( delta > 0 ? "down" : "up" );
        beforeScrollTop = afterScrollTop;
    }, false);
}

甜品战士柏木氏 answered 10 years, 4 months ago

Your Answer