首页 > 编程 > JavaScript > 正文

js滚轮事件兼容性问题需要注意哪些

2019-11-19 18:58:21
字体:
来源:转载
供稿:网友

本文实例为大家解析了js滚轮事件需要注意的兼容性问题,供大家参考,具体内容如下

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style>  #div {   width: 300px;   height: 300px;   background: red;  } </style> <script>  function addEvent(obj,sEv,fn){   if(obj.addEventListener){    return obj.addEventListener(sEv,fn,false);   }else{    return obj.attachEvent('on' + sEv,fn);   }  }  function addWheel(obj,fn){   function wheel(ev){    var oEvent = ev || event;    var bDown = true;    bDown = oEvent.wheelDelta?oEvent.wheelDelta > 0:oEvent.detail < 0;    fn && fn(bDown);    oEvent.preventDefault && oEvent.preventDefault();    return false;   }------------------------------------------------------------------return false阻止浏览器默认行为,遇到绑定添加的事件的时候就失效了;所有要用oEvent.preventDefault();在使用此方法前要做判断;------------------------------------------------------------------   if(window.navigator.userAgent.indexOf('Firefox') !=-1){    obj.addEventListener('DOMMouseScroll',wheel,false);注:所有以DOM开头的只能通过事件绑定的形式添加此事件;   }else{    addEvent(obj,'mousewheel',wheel);   }  }------------------------------------------------------------------------------------------------- obj.onmousewheel:滚动鼠标滚轮的时候触发;兼容IE系列和chrome; DOMMouseScroll:只能通过事件绑定的形式添加此事件;只兼容FF; 兼容性问题解决方案:判断浏览器; oEvent.wheelDelta:不兼容FF;火狐下报undefined;  chrome&&IE:   下:-120;//以具体弹出数字为准   上:120; oEvent.detail:  FF:   下:3;//以具体弹出数字为准---------------------------------------------------------------------------------------------------  window.onload = function () {   var oDiv = document.getElementById('div');   addWheel(oDiv,function(bDown){    oDiv.onmousewheel = null;    if(bDown){     oDiv.style.height = oDiv.offsetHeight - 10 + 'px';    }else{     oDiv.style.height = oDiv.offsetHeight + 10 + 'px';    }   });  } </script></head><body><div id="div"></div></body></html>

滚轮事件的兼容性问题比较多,所以大家在实现这个效果的时候也要随时测试兼容性的问题。

暂时整理的大概就这些,还有很多不足的地方,大家多提宝贵意见!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表