搜索

首页  >  问答  >  正文

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

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

天蓬老师天蓬老师2904 天前392

全部回复(2)我来回复

  • ringa_lee

    ringa_lee2017-04-10 15:13:16

    原生的并不会很麻烦啊,给一个原生的示例吧(可直接在当前页面控制台中运行查看效果),原理就是判断滚动前后的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);
    }
    

    回复
    0
  • PHP中文网

    PHP中文网2017-04-10 15:13:16

    大师,帮忙看看jq版的,我的bescroll 的值,滚动后一直不变,是个什么情况呢?

    var bescroll = $(document).scrollTop();
    function ss(){
    $(window).scroll(function(){
     var afscroll = $(document).scrollTop();
     var res = afscroll - bescroll;
     if(res>0){
    alert('xia'+afscroll);
     }else{
    alert('shang'+afscroll);
    bescroll = afscroll;
     }
    });
    }
    ss();
    

    回复
    0
  • 取消回复