DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> 原生JS綁定滑輪滾動事件兼容常見浏覽器
原生JS綁定滑輪滾動事件兼容常見浏覽器
編輯:關於JavaScript     

滑輪滾動頁面的事件在網頁特效中進場遇到,但是在不同浏覽器下的實現方式又不同。下面我實現的方法,兼容常見浏覽器。

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來區分IE?

attachEvent和detachEvent是IE特有的綁定事件和解綁事件的方法,只有在IE中存在此方法。但是在IE9+浏覽器中有實現了較為通用的addEventListener方法來綁定事件。浏覽器中有document.addEventListener 方法就可以排除不是IE8及其以下版本的,但是包括了IE9+浏覽器,所以後面使用 &&!document.attachEvent來排除IE9+浏覽器。

2 值得注意的就是在FF浏覽器中沒有mousewheel事件,觸發滾動的時間是DOMMouseScroll。

3 還有一點值得注意的就是在使用addEventListener綁定事件的時候,事件名前面不加on,而在IE中使用attachEvent綁定事件的時候需要加上on。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved