【问题标题】:JavaScript trouble detecting mouse wheel eventJavaScript 在检测鼠标滚轮事件时遇到问题
【发布时间】:2012-05-29 01:06:48
【问题描述】:

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

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

感谢您的帮助。

【问题讨论】:

    标签: javascript events mouse mousewheel


    【解决方案1】:

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

    希望能修复它。

    【讨论】:

    • 嘿,太棒了,非常感谢!当我看到 IF 时,我只是本能地在另一个条件上加上了 else 子句,这对我来说是错误的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-07
    • 2014-12-30
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多