I am working on an application, and I need to track the movement of the mouse wheel, but my functions do not work as I expect in Internet Explorer. It works in all other browsers, but not in IE, any ideas on what I am doing wrong?
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); } } }
I call the setupMouseWheel onload function in aka body
<body onload="setupMouseWheel();">
Thanks for the help!
source share