如何在Opera上捕捉onmousewheel事件?

时间:2013-04-17 19:59:35

标签: javascript mouseevent opera mousewheel

我认为以下代码同时针对IE和Opera

window.onload = function() {
    document.attachEvent("onmousewheel", function() {
        console.log("mousewheel detected");
    });
};

然而,Opera(11.11)根本没有回应。

我试图谷歌这个,但没有得到任何有用的信息。 Opera甚至支持鼠标滚轮事件吗?

组合我试过......

attachEventaddEventListenermousewheelonmousewheelDOMMouseScroll

更新

好的,mousewheel事件确实被Opera所困,问题是我的Opera控制台没有打印出来。 alert有效。

1 个答案:

答案 0 :(得分:0)

您需要处理所有浏览器的兼容性,而不是切换到可能破坏其他浏览器的解决方案。验证您是否可以使用解决方案的最简单方法是“if”。

在这种情况下,您可以使用2种解决方案。 addEventListener&的attachEvent。

var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x

if (document.attachEvent) //if IE (and Opera depending on user setting) {
    document.attachEvent("on"+mousewheelevt, function(e){alert('Mouse wheel movement detected!')})
else if (document.addEventListener) { //WC3 browsers
    document.addEventListener(mousewheelevt, function(e){alert('Mouse wheel movement detected!')}, false)

Source