JavaScript检测鼠标滚轮事件的麻烦

时间:2012-05-29 01:06:49

标签: javascript events mouse mousewheel

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

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 个答案:

答案 0 :(得分: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

希望能解决它。