JavaScript 无法检测鼠标滚轮事件

标签 javascript events mouse mousewheel

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

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

感谢您的帮助。

最佳答案

我猜你实现它的方式只适用于某些浏览器,例如 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

希望修复它。

关于JavaScript 无法检测鼠标滚轮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791995/

相关文章:

javascript - 具有相同父级的所有元素的一个事件监听器,即使某些元素被放置在代表多个节点的变量中

javascript - 有没有办法在构造对象后注入(inject)特权方法?

jQuery:当文本框有内容时使按钮可见

Symfony getData 事件订阅者为 null

javascript - 使用 IE10 和 Windows 8 捕获移动事件

Java AWT : How to know which mouse button was released after a mouseDragged event?

javascript - jscrollpane block 滚动父级

javascript - 按钮在后续选项卡上无法在 Highcharts 中重绘图表

c# - 如何通过 WebClient 请求传递信息以识别加载的对象?

javascript - 使用 jquery mobile 加载页面后更新数据主题