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

谢谢你的帮助。

4

1 回答 1

4

我想您实现它的方式仅适用于某些浏览器,例如 Chrome 浏览器。你试过把

document.onmousewheel = zoom_handler;

在 else 语句之外?这样做,使它可以在我运行在 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

希望修复它。

于 2012-05-29T01:35:13.900 回答