gpt4 book ai didi

javascript - 鼠标滚轮事件在 ie 中不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 05:42:48 24 4
gpt4 key购买 nike

我正在开发一个应用程序,我需要跟踪鼠标滚轮的移动,但我的功能在 Internet Explorer 中无法正常工作。它适用于所有其他浏览器,但不适用于 IE,关于我做错了什么有什么想法吗?

JS...

var request = true;
var onMouseWheelSpin = function(event) {
if(request === true){
request = false;
var nDelta = 0;
if (!event) { event = window.event; }
// cross-bowser handling of eventdata to boil-down delta (+1 or -1)
if ( event.wheelDelta ) { // IE and Opera
nDelta= event.wheelDelta;
if ( window.opera ) { // Opera has the values reversed
nDelta= -nDelta;
}
}
else if (event.detail) { // Mozilla FireFox
nDelta= -event.detail;
}
if (nDelta > 0) {
zoomFun( 1, event );
}
if (nDelta < 0) {
zoomFun( -1, event );
}
if ( event.preventDefault ) { // Mozilla FireFox
event.preventDefault();
}
event.returnValue = false; // cancel default action
}
}

var zoomFun = function(delta,e) {
if(delta > 0){ // zoom in
alert("In");
}else{ // zoom out
alert("Out");
}
request = true;
}

var setupMouseWheel = function(){
// for mouse scrolling in Firefox
var elem = document.getElementById("zoom");
if (elem.addEventListener) { // all browsers except IE before version 9
// Internet Explorer, Opera, Google Chrome and Safari
elem.addEventListener ("mousewheel", onMouseWheelSpin, false);
// Firefox
elem.addEventListener ("DOMMouseScroll", onMouseWheelSpin, false);
}else{
if (elem.attachEvent) { // IE before version 9
elem.attachEvent ("onmousewheel", onMouseWheelSpin);
}
}
}

我在正文中调用 setupMouseWheel 函数 onload

<body onload="setupMouseWheel();">

感谢您的帮助!

最佳答案

要监听鼠标滚轮,最好监听DOMMouseScrollmousewheelwheel。最后一个是 IE,并且是唯一一个你没有听的。

我还要指出 jQuery 有一个绑定(bind)多个事件的快捷方式:

 $(elem).on("DOMMouseScroll mousewheel wheel", onMouseWheelSpin);

更新:注意到虽然您将其标记为 jQuery,但实际上并没有使用它。要在没有 jQuery 的情况下执行此操作,只需照原样进行,但像其他人一样添加一个 wheel 事件监听器。

关于javascript - 鼠标滚轮事件在 ie 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16756260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com