JS鼠标滚轮判断向上还是向下滚动

前言:

    在写本篇的时候火狐已经支持最新鼠标滚轮事件的标准,支持统一方法onwhell方法,但是ie11没有支持onwheel方法

1,在火狐下

     a,如果绑定事件DOMMouseScroll,document.addEventListener("DOMMouseScroll",wheelHander,false);

   则event.detail>0向下滚动,小于0向上滚动

     b,如果绑定事件onwheel,   document.onwheel=wheelHander;

       event.deltaY>0向下滚动,小于0向上滚动

2,在ie11下

     绑定document.onmousewheel事件

      event.wheelDelta<0向下滚动  

并且event.detail*-40=event.wheelDelta

所以综合判断滚动条是向上还是向下,由于火狐最新版本即支持DOMMouseScroll也支持onwheel,onwheel是未来将要统一支持的,所以在不能统一用onwheelDOMMouseScroll,来消除事件重复计算

document.onmousewheel=wheelHander;  //在ie下有效
if(isFirefox)document.addEventListener("DOMMouseScroll",wheelHander,false);

function wheelHander(event){
   event = event || window.event;
  if(event.wheelDelta){

  if(event.wheelDelta>0){//向上滚动}else{//向下}  

   }else if (event.detail){

  if(event.detail>0{//向下滚动})

   }
}

原文地址:https://www.cnblogs.com/Ycc9/p/5404185.html