2012-03-31 88 views

回答

46

向上滾動jQuery中/下區別,你可以使用:

var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x 
$('#yourDiv').bind(mousewheelevt, function(e){ 

    var evt = window.event || e //equalize event object  
    evt = evt.originalEvent ? evt.originalEvent : evt; //convert to originalEvent if possible    
    var delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta //check for detail first, because it is used by Opera and FF 

    if(delta > 0) { 
     //scroll up 
    } 
    else{ 
     //scroll down 
    } 
}); 

此方法也適用於有overflow:hidden的div。

我成功地在FireFox,IE和Chrome中測試了它。

+0

這工作得很好!一個簡單的''''e.preventDefault()'''也不允許你的滾動到任何父元素(如頁面),如果你只是想在一個部分的滾動上做一些事情,而不是實際滾動你的元素或其父母 – 2015-07-24 20:11:57

+0

任何想法,這對蘋果觸控板或魔術鼠標與溢出隱藏? http://stackoverflow.com/q/32512924/770127 – ryanve 2015-09-10 23:36:33

+1

這不應該再做了,瀏覽器嗅探一直不是很好的做法。現在還有另一個跨瀏覽器事件會更好用。 http://stackoverflow.com/a/33334461/3168107 – Shikkediel 2015-10-29 11:38:13