2012-06-05 44 views
3

當div滾動結束頁面滾動開始時,我在具有滾動條的頁面中有一個div。這是任何瀏覽器的默認行爲,但我仍然希望在div滾動結束後停止滾動頁面。我在這裏有一個修復這裏是我在fiddle創建的示例。滾動的小div只能在IE8中滾動頁面

但上述解決方案適用於Chrome,Firefox,IE9。但不能在IE8中工作。

請讓我知道,如果你找到這個解決方案。

感謝, 戈皮

+0

我試圖在FF 13上的Mac,滾動停止,但只要我移動鼠標,並嘗試再次滾動它將滾動頁面,即使鼠標仍然在div內 – Huangism

+1

玩過它後,它看起來像其他瀏覽器在滾動到達底部之後進行額外的鼠標滾輪調用。 IE8沒有。因此,如果您打印出方法中調用的最後一個scrollTop,在IE8中它比Chrome中的最大值小,這是最大值。我想不出一個簡單的解決辦法(除了我個人最喜歡的「不要使用IE」)。 我覺得它可能是可行的,但它也可能是非常混亂。我的直覺就是說不要像這樣覆蓋瀏覽器行爲。 http://stackoverflow.com/questions/5802467/prevent-scrolling-of-parent-element – Andrew

回答

0

安德魯如上所述,你嘗試過這個演示由@amustill(Prevent scrolling of parent element?)?

演示:

http://jsbin.com/ixura3/3/

JS:

$(function() { 

    var toolbox = $('#toolbox'), 
     height = toolbox.height(), 
     scrollHeight = toolbox.get(0).scrollHeight; 

    toolbox.bind('mousewheel', function(e, d) { 
    if((this.scrollTop === (scrollHeight - height) && d < 0) || (this.scrollTop === 0 && d > 0)) { 
     e.preventDefault(); 
    } 
    }); 

}); 

HTML:

<div id="toolbox"> 
    Text that scrolls... 
</div> 

這需要jQuery和jQuery Mousewheel Plugin