js滾輪事件兼容性問題需要注意哪些
更新時間:2016年11月15日 09:00:54 作者:ALI-LILI
這篇文章主要為大家詳細(xì)介紹了js滾輪事件需要注意的兼容性問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家解析了js滾輪事件需要注意的兼容性問題,供大家參考,具體內(nèi)容如下
<!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阻止瀏覽器默認(rèn)行為,遇到綁定添加的事件的時候就失效了; 所有要用oEvent.preventDefault();在使用此方法前要做判斷; ------------------------------------------------------------------ if(window.navigator.userAgent.indexOf('Firefox') !=-1){ obj.addEventListener('DOMMouseScroll',wheel,false);注:所有以DOM開頭的只能通過事件綁定的形式添加此事件; }else{ addEvent(obj,'mousewheel',wheel); } } ------------------------------------------------------------------------------------------------- obj.onmousewheel:滾動鼠標(biāo)滾輪的時候觸發(fā);兼容IE系列和chrome; DOMMouseScroll:只能通過事件綁定的形式添加此事件;只兼容FF; 兼容性問題解決方案:判斷瀏覽器; oEvent.wheelDelta:不兼容FF;火狐下報undefined; chrome&&IE: 下:-120;//以具體彈出數(shù)字為準(zhǔn) 上:120; oEvent.detail: FF: 下:3;//以具體彈出數(shù)字為準(zhǔn) --------------------------------------------------------------------------------------------------- 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>
滾輪事件的兼容性問題比較多,所以大家在實現(xiàn)這個效果的時候也要隨時測試兼容性的問題。
暫時整理的大概就這些,還有很多不足的地方,大家多提寶貴意見!
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ionic在開發(fā)ios系統(tǒng)微信時鍵盤擋住輸入框的解決方法(鍵盤彈出問題)
在使用ionic開發(fā)ios系統(tǒng)微信的時候遇到一個bug,在填寫表單的時候鍵盤會擋住輸入框。下面小編給大家?guī)砹薸onic在開發(fā)ios系統(tǒng)微信時鍵盤擋住輸入框的解決方法(鍵盤彈出問題),非常不錯,有需要的朋友參考下吧2016-09-09跟我學(xué)習(xí)javascript的執(zhí)行上下文
跟我學(xué)習(xí)javascript的執(zhí)行上下文,讀完本文后,你應(yīng)該清楚了解釋器做了什么,為什么函數(shù)和變量能在聲明前使用以及它們的值是如何決定的,需要了解這些內(nèi)容的朋友可以參考下2015-11-11JavaScript拆分字符串時產(chǎn)生空字符的解決方案
使用JavaScript的split方法拆分字符串時出現(xiàn)一些空字符串"",尤其是當(dāng)使用正則表達(dá)式作為分隔符的時候。那么,產(chǎn)生這些空字符串的原因是什么?又該如何來處理呢,這就是今天我們要探討的問題2014-09-09