原生JS綁定滑輪滾動(dòng)事件兼容常見瀏覽器
滑輪滾動(dòng)頁(yè)面的事件在網(wǎng)頁(yè)特效中進(jìn)場(chǎng)遇到,但是在不同瀏覽器下的實(shí)現(xiàn)方式又不同。下面我實(shí)現(xiàn)的方法,兼容常見瀏覽器。
function getData(event){
var e = event || window.event;
//獲取滾動(dòng)距離(FF每次滾動(dòng) data為3或者-3,其他為120或者-120)
var data = e.detail || e.wheelDelta;
alert(data);
}
//IE之外的綁定事件方法
if(document.addEventListener && !document.attachEvent)
{
document.addEventListener('mousewheel',getData);
//FF綁定滾動(dòng)事件
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+瀏覽器中有實(shí)現(xiàn)了較為通用的addEventListener方法來綁定事件。瀏覽器中有document.addEventListener 方法就可以排除不是IE8及其以下版本的,但是包括了IE9+瀏覽器,所以后面使用 &&!document.attachEvent來排除IE9+瀏覽器。
2 值得注意的就是在FF瀏覽器中沒有mousewheel事件,觸發(fā)滾動(dòng)的時(shí)間是DOMMouseScroll。
3 還有一點(diǎn)值得注意的就是在使用addEventListener綁定事件的時(shí)候,事件名前面不加on,而在IE中使用attachEvent綁定事件的時(shí)候需要加上on。
- JS圖片無縫、平滑滾動(dòng)代碼
- 博客側(cè)邊欄模塊跟隨滾動(dòng)條滑動(dòng)固定效果的實(shí)現(xiàn)方法(js+jquery等)
- 滾動(dòng)條響應(yīng)鼠標(biāo)滑輪事件實(shí)現(xiàn)上下滾動(dòng)的js代碼
- JavaScript控制網(wǎng)頁(yè)平滑滾動(dòng)到指定元素位置的方法
- 基于JavaScript實(shí)現(xiàn)div層跟隨滾動(dòng)條滑動(dòng)
- 鏈接圖片無縫(無間斷)向左平滑滾動(dòng)Js版代碼
- js/jquery控制頁(yè)面動(dòng)態(tài)加載數(shù)據(jù) 滑動(dòng)滾動(dòng)條自動(dòng)加載事件的方法
- javascript實(shí)現(xiàn)平滑無縫滾動(dòng)
- AngularJS 中使用Swiper制作滾動(dòng)圖不能滑動(dòng)的解決方法
- js實(shí)現(xiàn)盒子滾動(dòng)動(dòng)畫效果
相關(guān)文章
利用原生js實(shí)現(xiàn)html5小游戲之打磚塊(附源碼)
這篇文章主要給大家介紹了關(guān)于利用原生js實(shí)現(xiàn)html5小游戲之打磚塊的相關(guān)資料,這是最近工作遇到的一個(gè)小需求,文中通過示例代碼介紹的非常詳細(xì),并分享了完整的源碼供大家參考學(xué)習(xí),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-01-01
淺談javascript六種數(shù)據(jù)類型以及特殊注意點(diǎn)
這篇文章主要介紹了javascript六種數(shù)據(jù)類型以及特殊注意點(diǎn),有需要的朋友可以參考一下2013-12-12
javascript基于牛頓迭代法實(shí)現(xiàn)求浮點(diǎn)數(shù)的平方根【遞歸原理】
這篇文章主要介紹了javascript基于牛頓迭代法實(shí)現(xiàn)求浮點(diǎn)數(shù)的平方根,簡(jiǎn)單說明了牛頓迭代法的原理,并結(jié)合實(shí)例分析了javascript基于遞歸的數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
前端實(shí)現(xiàn)文件下載的幾種常用方式總結(jié)
這篇文章主要給大家介紹了關(guān)于前端實(shí)現(xiàn)文件下載的兩種常用方式,兩種方法均通過創(chuàng)建臨時(shí)URL并觸發(fā)下載實(shí)現(xiàn),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-11-11
js實(shí)現(xiàn)簡(jiǎn)單購(gòu)物車模塊
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)簡(jiǎn)單購(gòu)物車模塊,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
javascript獲取網(wǎng)頁(yè)各種高寬及位置的方法總結(jié)
下面小編就為大家?guī)硪黄猨avascript獲取網(wǎng)頁(yè)各種高寬及位置的方法總結(jié)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-07-07
window.addeventjs事件驅(qū)動(dòng)函數(shù)集合addEvent等
addEvent()、removeEvent()、handleEvent()、fixEvent()[2008-02-02
微信小程序三級(jí)聯(lián)動(dòng)選擇器使用方法
這篇文章主要為大家詳細(xì)介紹了微信小程序三級(jí)聯(lián)動(dòng)選擇器使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02

