0

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

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

但是,Opera (11.11) 根本没有任何反应。

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

我试过的组合...

attachEvent,addEventListenermousewheel, onmousewheel,DOMMouseScroll

更新

好的,mousewheel事件确实在 Opera 上被捕获,问题是我的 Opera 控制台没有打印任何内容。alert作品。

4

1 回答 1

0

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

在这种情况下,您可以使用 2 个解决方案。添加事件监听器和附加事件。

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)

资源

于 2013-04-17T20:07:43.073 回答