原生JS綁定滑輪滾動(dòng)事件兼容常見(jiàn)瀏覽器
滑輪滾動(dòng)頁(yè)面的事件在網(wǎng)頁(yè)特效中進(jìn)場(chǎng)遇到,但是在不同瀏覽器下的實(shí)現(xiàn)方式又不同。下面我實(shí)現(xiàn)的方法,兼容常見(jià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來(lái)區(qū)分IE?
attachEvent和detachEvent是IE特有的綁定事件和解綁事件的方法,只有在IE中存在此方法。但是在IE9+瀏覽器中有實(shí)現(xiàn)了較為通用的addEventListener方法來(lái)綁定事件。瀏覽器中有document.addEventListener 方法就可以排除不是IE8及其以下版本的,但是包括了IE9+瀏覽器,所以后面使用 &&!document.attachEvent來(lái)排除IE9+瀏覽器。
2 值得注意的就是在FF瀏覽器中沒(méi)有mousewheel事件,觸發(fā)滾動(dòng)的時(shí)間是DOMMouseScroll。
3 還有一點(diǎn)值得注意的就是在使用addEventListener綁定事件的時(shí)候,事件名前面不加on,而在IE中使用attachEvent綁定事件的時(shí)候需要加上on。
- JS圖片無(wú)縫、平滑滾動(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)
- 鏈接圖片無(wú)縫(無(wú)間斷)向左平滑滾動(dòng)Js版代碼
- js/jquery控制頁(yè)面動(dòng)態(tài)加載數(shù)據(jù) 滑動(dòng)滾動(dòng)條自動(dòng)加載事件的方法
- javascript實(shí)現(xiàn)平滑無(wú)縫滾動(dòng)
- AngularJS 中使用Swiper制作滾動(dòng)圖不能滑動(dòng)的解決方法
- js實(shí)現(xiàn)盒子滾動(dòng)動(dòng)畫(huà)效果
相關(guān)文章
基于原生js實(shí)現(xiàn)判斷元素是否有指定class名
這篇文章主要介紹了基于原生js實(shí)現(xiàn)判斷元素是否有指定class名,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07微信小程序?qū)崿F(xiàn)的繪制table表格功能示例
這篇文章主要介紹了微信小程序?qū)崿F(xiàn)的繪制table表格功能,涉及微信小程序數(shù)據(jù)讀取及界面布局相關(guān)操作技巧,需要的朋友可以參考下2019-04-04面試判斷元素是否在可視區(qū)域中IntersectionObserver詳解
這篇文章主要為大家介紹了判斷元素是否在可視區(qū)域中IntersectionObserver面試詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03在Google 地圖上實(shí)現(xiàn)做的標(biāo)記相連接
這篇文章主要介紹了在Google 地圖上實(shí)現(xiàn)做的標(biāo)記相連接,需要的朋友可以參考下2015-01-01開(kāi)源的javascript項(xiàng)目Kissy介紹
本文向大家介紹了開(kāi)源的javascript項(xiàng)目Kissy,是taobao UED小組推的一款js框架,我們來(lái)簡(jiǎn)單研究下,為什么taobao這么推崇他呢。2014-11-11JavaScript 中 avalon綁定屬性總結(jié)
avalon是前端MVVM框架,在js中經(jīng)常會(huì)用到。這篇文章主要介紹了JavaScript 中 avalon綁定屬性總結(jié)的相關(guān)資料,需要的朋友可以參考下2016-10-10