2012-05-29 70 views
4

我試圖捕獲鼠標事件。下面是我想要的代碼:JavaScript故障檢測鼠標滾輪事件

if(window.addEventListener) { document.addEventListener('DOMMouseScroll', zoom_handler, false); } 
else { document.onmousewheel = zoom_handler; } 

alert("test"); //I see this alert so I assume the code above it is run 

// ...

function zoom_handler(event) { 

    var delta = 0; 

    if (!event) event = window.event; 
    // normalize the delta 
    if (event.wheelDelta) { 
     // IE and Opera 
     delta = event.wheelDelta/60; 
    } else if (event.detail) { 
     // W3C 
     delta = -event.detail/2; 
    } 

    alert("Delta: " + delta); 


} 

除問題是我看到的時候我嘗試我的網頁上盤旋上下一無所有,所以我想我沒有正確地捕捉事件。作爲參考,我一直在試圖遵循本教程:http://viralpatel.net/blogs/2009/08/javascript-mouse-scroll-event-down-example.html

感謝您的任何幫助。

回答

4

我想你實現它的方式只能在某些瀏覽器中使用,而不是在Chrome中。您是否嘗試在else語句之外放置

document.onmousewheel = zoom_handler; 

? 這樣做,可以在我的OSX Lion(Mac)上運行的Chrome瀏覽器上運行。

這是我在我的電腦上如何進行測試:

if(window.addEventListener) { document.addEventListener('DOMMouseScroll', zoom_handler, false); } 
document.onmousewheel = zoom_handler; 

alert("test"); //I see this alert so I assume the code above it is run 

希望修復它。

+0

嘿,真是太棒了,非常感謝!當我看到IF時,我只是本能地在另一個條件上加了一個條款,這對我來說是錯誤的。 – JDS