2012-05-29 40 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