时间:2021-05-26
本文实例为大家解析了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>滚轮事件的兼容性问题比较多,所以大家在实现这个效果的时候也要随时测试兼容性的问题。
暂时整理的大概就这些,还有很多不足的地方,大家多提宝贵意见!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
有些时候需要动态加载javascript事件的一些方法往往我们需要在JS中动态添加事件,这就涉及到浏览器兼容性问题了,以下谈及的几种方法,我们也常常混合使用。方
需要注意的是,PowerCover仅适用于SurfacePro、Surface2和SurfacePro2,而由于底部接口兼容性问题,并不支持第一代Surfa
需要注意的是,PowerCover仅适用于SurfacePro、Surface2和SurfacePro2,而由于底部接口兼容性问题,并不支持第一代Surfa
需要注意的是,PowerCover仅适用于SurfacePro、Surface2和SurfacePro2,而由于底部接口兼容性问题,并不支持第一代Surfa
需要注意的是,PowerCover仅适用于SurfacePro、Surface2和SurfacePro2,而由于底部接口兼容性问题,并不支持第一代Surfa