JavaScript出现鼠标滚轮事件检测问题

4

我正在尝试捕获鼠标事件。以下是我的代码:

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
谢谢您的任何帮助。
1个回答

4
我猜你实现的方式,只能在某些浏览器中使用,比如在Chrome上就不能用。你尝试过将代码放在``````标签内吗?
document.onmousewheel = zoom_handler;

在else语句之外? 这样做可以让它在我的Chrome浏览器上运行,该浏览器运行在OSX Lion(Mac)上。
这是我在电脑上的测试方法:
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

希望能解决这个问题。

太棒了,非常感谢!当我看到IF语句时,我本能地在另一个条件上加了一个else子句,这是我的错误。 - JDS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接