原生JS绑定滑轮滚动事件兼容常见浏览器
滑轮滚动页面的事件在网页特效中进场遇到,但是在不同浏览器下的实现方式又不同。下面我实现的方法,兼容常见浏览器。
functiongetData(event){
vare=event||window.event;
//获取滚动距离(FF每次滚动data为3或者-3,其他为120或者-120)
vardata=e.detail||e.wheelDelta;
alert(data);
}
//IE之外的绑定事件方法
if(document.addEventListener&&!document.attachEvent)
{
document.addEventListener('mousewheel',getData);
//FF绑定滚动事件
document.addEventListener('DOMMouseScroll',getData);
}
//IE
elseif(document.attachEvent&&!document.addEventListener){
document.attachEvent('onmousewheel',getData);
}else{
window.onmousewheel=getData;
}
代码中值得注意的地方:
1为什么使用document.addEventListener&&!document.attachEvent来区分IE?
attachEvent和detachEvent是IE特有的绑定事件和解绑事件的方法,只有在IE中存在此方法。但是在IE9+浏览器中有实现了较为通用的addEventListener方法来绑定事件。浏览器中有document.addEventListener方法就可以排除不是IE8及其以下版本的,但是包括了IE9+浏览器,所以后面使用&&!document.attachEvent来排除IE9+浏览器。
2值得注意的就是在FF浏览器中没有mousewheel事件,触发滚动的时间是DOMMouseScroll。
3还有一点值得注意的就是在使用addEventListener绑定事件的时候,事件名前面不加on,而在IE中使用attachEvent绑定事件的时候需要加上on。
热门推荐
10 财运虎年祝福语简短语
11 单亲爸爸春节祝福语简短
12 狗狗上厕所训练
13 植物种植祝福语简短
14 翻译考试祝福语朋友简短
15 个人周年庆简短祝福语
16 狗狗怎么训练
17 分别祝福语简短搞笑英文
18 生日广州男生祝福语简短