2014-03-27 47 views
0

我有一個滑出移動菜單,溢出設置爲自動,所以如果菜單太長,它將允許用戶滾動。使用jQuery,如何在到達可滾動div的底部時阻止頁面滾動?

我希望用戶能夠在不滾動頁面的情況下到達菜單的末尾。

我嘗試每一種:當然

$(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 
}); 

它測試菜單打開第一。這些都不能防止頁面滾動。

+0

你不能阻止該網頁滾動的例子中,你必須隱藏溢出或使用覆蓋或者什麼,因爲沒有辦法阻止JavaScript的滾動條。 – adeneo

+0

需要做這樣的[迪斯尼世界](https://disneyworld.disney.go.com/)。當我到達菜單底部時,我的滾動菜單正常滾動,只需保持右側(主頁)不滾動。 – dcp3450

+0

迪士尼頁面會執行設備嗅探,因此您必須在手機上查看它。 – dcp3450

回答

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