2012-07-09 211 views
1

編輯:停止jQuery的滾輪滾動文檔

也許我處理這個錯誤的 - 沒有人知道從鼠標滾輪滾動停止頁面的方法嗎?這甚至可以被禁用?

-

我充滿了小格的當鼠標滾輪滾動動畫其中一個div容器。這不是一個帶溢出的div:hidden,它沒有滾動區域 - 它只是一個簡單的jquery動畫(動畫可以很好地工作)。

不幸的是,儘管我盡了最大的努力,但當鼠標位於容器格內時,我無法停止滾動整個頁面。

我使用Brandon Aaron的jQuery滾輪插件(這應該是解決我的問題,但不幸的是它不是)。

這裏是我的javascript:

$('#containerDiv').mousewheel(function(event,delta,deltaX,deltaY){ 
    /* all of this is supposed to stop the page from scrolling... but it doesnt*/ 
    event.bubbles=false; 
    event.cancelBubble=true; 
    if(event.preventDefault) event.preventDefault(); 
    if(event.stopPropagation) event.stopPropagation(); 
    if(event.stopImmediatePropagation) event.stopImmediatePropagation(); 
    $(document).blur(); 
    $(this).focus(); 

    /*this function just animates the divs inside the container divs*/ 
    animateDivs(delta); 
}); 

伊夫經歷過這些問題已經:

Prevent scrolling of parent element?

stop mousewheel's continued effect

stop scrolling of webpage with jquery

和他們都不 幫助。

任何人都可以提供更好的解決方案來解決這個問題嗎?

+0

$ .mousewheel犯規滾動元素。它通過鼠標滾輪添加滾動元素。你的例子呢。 (MouseWhell滾動被禁用,滾動條滾動被啓用)http://jsfiddle.net/A8tjk/ – kubedan 2012-07-13 08:56:21

+0

這個[answer](http://stackoverflow.com/a/4770179/1107651)給我一個類似的問題爲我工作 – 2012-07-12 20:24:05

回答

2

您可以使用galambalazs的solution作爲Guilherme Torres Castro answered。但它並不取消scroll事件。如果你想取消滾動事件,你必須添加它。 我的fiddle solutionntownsend's post吸入。

此解決方案的問題是「滑動」(隱藏/顯示)滾動條。所以我添加滾動到實際的滾動位置上window.onScroll事件和我FINAL SOLUTION is here

最終的解決方案有問題,當我嘗試滾動,但事件beforeScroll犯規存在https://stackoverflow.com/a/3352244/1102223