解析javascript中鼠標滾輪事件
所有的現(xiàn)代瀏覽器都支持鼠標滾輪,并且在用戶滾動滾輪時觸發(fā)時間。瀏覽器通常使用鼠標滾輪滾動或縮放文檔,但可以通過取消mousewheel事件來阻止這些默認操作。有一些互用性問題影響滾輪事件,但是編寫跨平臺的代碼依舊可以行。除了Firefox之外的所有瀏覽器都支持“mousewheel”事件,但Firefox使用“DOMMouseScroll”,而3級DOM事件規(guī)范草案建議使用事件名“wheel”替代“mousewheel”。
document.body.onmousewheel = function(event){
event = event || window.event;
console.dir(event);
}
Firefox不支持mousewheel
document.body.addEventListener("DOMMouseScroll",function(event){
console.dir(event);
})
以下滾輪向下滾動是chrome和IE9下面控制臺輸出


以下是滾輪向下滾動Firefox下面控制臺輸出


從上面輸出得出,可以使用非標準的DOMMouseScroll事件取代mousewheel,使用事件對象的detail屬性取代wheelDetal。但是,detail屬性值的縮放比率和正負符號不同于wheelDetal,detail值乘以-40和wheelDetal值相等。
在除了FireFox之外的瀏覽器下,滾動的上下滾動與否是下面這個wheelDelta有關。

根據(jù)測試,在我的win7系統(tǒng)下,無論IE7, IE10, Opera12,或者是safari5.1,每次往下滾動event.wheelDelta值都是-120.
對于FireFox瀏覽器(Opera瀏覽器也有),判斷鼠標滾動方向的屬性為event.detail, 向下滾動值為3.

需要注意的是,F(xiàn)ireFox瀏覽器的方向判斷的數(shù)值的正負與其他瀏覽器是相反的。FireFox瀏覽器向下滾動是正值,而其他瀏覽器是負值。
var isFirefox = (navigator.userAgent.indexOf("Firefox") !== -1);
if(isFirefox){
element.addEventListener("DOMMouseScroll",wheelHandler,false);
}
element.onmousewheel = wheelHandler;
//element.onwheel = wheelHandler; //DOM3級wheel事件,經(jīng)過測試IE9還是不支持,但是谷歌和火狐都支持,在谷歌內有wheelDelta在火狐里面有detail
function wheelHandler(event){ event = event || window.event; var delta = event.wheelDelta || detail*-30; }
以上所述就是本文的全部內容了,希望大家能夠喜歡。
- js實現(xiàn)的鼠標滾輪滾動切換頁面效果(類似360默認頁面滾動切換效果)
- JavaScript事件類型中焦點、鼠標和滾輪事件詳解
- JavaScript焦點事件、鼠標事件和滾輪事件使用詳解
- javascript實現(xiàn)禁止鼠標滾輪事件
- js實現(xiàn)鼠標滾輪控制圖片縮放效果的方法
- javascript監(jiān)聽鼠標滾輪事件淺析
- js捕獲鼠標滾輪事件代碼
- JS滾輪事件onmousewheel使用介紹
- 淺談Javascript鼠標和滾輪事件
- js 事件對象 鼠標滾輪效果演示說明
- JavaScript 滾輪事件使用說明
- js中鼠標滾輪事件詳解(firefox多瀏覽器)
- javascript 鼠標滾輪事件
- javascript 兼容鼠標滾輪事件
- 兩種js監(jiān)聽滾輪事件的實現(xiàn)方法
相關文章
微信小程序完美解決scroll-view高度自適應問題的方法
這篇文章主要介紹了微信小程序完美解決scroll-view高度自適應問題的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08

