1.mousewheel事件(兼容opera,chrome,safari,IE)
mousewheel事件对应的event对象包含一个wheelDelta属性。用户滚动鼠标滚轮时,wheelDelta的值是正负120
的倍数。
值得注意的是,在opera9.5之前的版本,wheelDelta的正负号是颠倒的,这里不做考虑
一般情况下,监听wheelDelta的正负值,就可以确定鼠标滚轮的滚动方向。
document.addEventListener('mousewheel',function(event){ console.log( event.wheelDelta > 0 )},false) 复制代码
2.DOMMouseScroll事件(兼容FireFox)
FireFox支持一个名为DOMMouseScroll的类似事件,类比于mousewheel。不同的是,鼠标滚轮的信息保存在detail属性里面。还有一点,用户滚动鼠标滚轮时,detail的值是正负3
的倍数。
document.addEventListener('DOMMouseScroll',function(event){ console.log( event.detail > 0 )},false)复制代码
3.跨浏览器兼容写法
var eventHandle = { getEvent: function(event){ return event || window.event; }, addEvent: function(element, type, handler){ if(element.addEventListener){ element.addEventListener(type, handler, false); } else if(element.attachEvent){ element.attachEvent('on'+type, handler); }else{ element['on'+type] = handler; } }, getWheelDelta: function(event){ return event.wheelDelta ? event.wheelDelta : (-event.detail)*40; }}function mouseHandle(event){ event = eventHandle.getEvent(event); var delta = eventHandle.getWheelDelta(event); console.log( delta )}eventHandle.addEvent(document, 'mousewheel', mouseHandle);eventHandle.addEvent(document, 'DOMMouseScroll', mouseHandle);复制代码