使用jQuery,如何在到达可滚动div的底部时阻止页面滚动?

时间:2014-03-27 17:08:12

标签: jquery scroll overflow

我有一个滑出的移动菜单,溢出设置为自动,因此如果菜单太长,它将允许用户滚动。

我希望用户能够在没有页面滚动的情况下到达菜单的末尾。

我已尝试过以下各项:

$(window).scroll(function(e){
     e.preventDefault();
});

$(window).scroll(function(e){
     e.preventDefault();
     e.stopPropagation();
});

$(window).scroll(function(e){
     return false
});

$('body').scroll(function(e){
     e.preventDefault();
});

$('body').scroll(function(e){
     e.preventDefault();
     e.stopPropagation();
});

$('body').scroll(function(e){
     return false
});

当然它测试菜单是先打开的。这些都不会阻止页面滚动。

1 个答案:

答案 0 :(得分:1)

我认为这样就可以看到小提琴上的例子

$(".scroll").bind( 'mousewheel DOMMouseScroll', function ( e ) {
                    //Get the original Event
                    var e0 = e.originalEvent,
                    //Hold the movement of the scroll 
                    delta = e0.wheelDelta ;
                    //If it's negative add -30 for each step or 30 if is positive
                    this.scrollTop += ( delta < 0 ? 1 : -1 ) * 30;
                    //Apply the scroll only for the element with the 
                    //handler      
                    e.preventDefault();
                    //Prevent the normal event
                }); 

Fiddle