原生JS綁定滑輪滾動事件兼容常見瀏覽器
滑輪滾動頁面的事件在網(wǎng)頁特效中進場遇到,但是在不同瀏覽器下的實現(xiàn)方式又不同。下面我實現(xiàn)的方法,兼容常見瀏覽器。
function getData(event){
var e = event || window.event;
//獲取滾動距離(FF每次滾動 data為3或者-3,其他為120或者-120)
var data = e.detail || e.wheelDelta;
alert(data);
}
//IE之外的綁定事件方法
if(document.addEventListener && !document.attachEvent)
{
document.addEventListener('mousewheel',getData);
//FF綁定滾動事件
document.addEventListener('DOMMouseScroll',getData);
}
//IE
else if(document.attachEvent && !document.addEventListener){
document.attachEvent('onmousewheel',getData);
}else{
window.onmousewheel = getData;
}
代碼中值得注意的地方:
1 為什么使用document.addEventListener && !document.attachEvent來區(qū)分IE?
attachEvent和detachEvent是IE特有的綁定事件和解綁事件的方法,只有在IE中存在此方法。但是在IE9+瀏覽器中有實現(xiàn)了較為通用的addEventListener方法來綁定事件。瀏覽器中有document.addEventListener 方法就可以排除不是IE8及其以下版本的,但是包括了IE9+瀏覽器,所以后面使用 &&!document.attachEvent來排除IE9+瀏覽器。
2 值得注意的就是在FF瀏覽器中沒有mousewheel事件,觸發(fā)滾動的時間是DOMMouseScroll。
3 還有一點值得注意的就是在使用addEventListener綁定事件的時候,事件名前面不加on,而在IE中使用attachEvent綁定事件的時候需要加上on。
相關(guān)文章
利用原生js實現(xiàn)html5小游戲之打磚塊(附源碼)
這篇文章主要給大家介紹了關(guān)于利用原生js實現(xiàn)html5小游戲之打磚塊的相關(guān)資料,這是最近工作遇到的一個小需求,文中通過示例代碼介紹的非常詳細,并分享了完整的源碼供大家參考學習,需要的朋友們下面隨著小編來一起學習學習吧。2018-01-01
淺談javascript六種數(shù)據(jù)類型以及特殊注意點
這篇文章主要介紹了javascript六種數(shù)據(jù)類型以及特殊注意點,有需要的朋友可以參考一下2013-12-12
javascript基于牛頓迭代法實現(xiàn)求浮點數(shù)的平方根【遞歸原理】
這篇文章主要介紹了javascript基于牛頓迭代法實現(xiàn)求浮點數(shù)的平方根,簡單說明了牛頓迭代法的原理,并結(jié)合實例分析了javascript基于遞歸的數(shù)值運算相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
javascript獲取網(wǎng)頁各種高寬及位置的方法總結(jié)
下面小編就為大家?guī)硪黄猨avascript獲取網(wǎng)頁各種高寬及位置的方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07
window.addeventjs事件驅(qū)動函數(shù)集合addEvent等
addEvent()、removeEvent()、handleEvent()、fixEvent()[2008-02-02

