原生JS綁定滑輪滾動事件,兼容瀏覽器

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

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。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章