Heim >Web-Frontend >js-Tutorial >Das native JS-Bindungs-Pullover-Scroll-Ereignis ist mit gängigen Browser-Javascript-Kenntnissen kompatibel

Das native JS-Bindungs-Pullover-Scroll-Ereignis ist mit gängigen Browser-Javascript-Kenntnissen kompatibel

WBOY
WBOYOriginal
2016-05-16 16:42:511596Durchsuche

Das Ereignis des Scrollens der Seite mit dem Rad tritt bei Spezialeffekten auf Webseiten auf, aber die Implementierungsmethoden sind in verschiedenen Browsern unterschiedlich. Die von mir unten implementierte Methode ist mit gängigen Browsern kompatibel.

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; 
}

Bemerkenswerte Stellen im Code:

1 Warum document.addEventListener && !document.attachEvent verwenden, um IE zu unterscheiden?

attachEvent und detachEvent sind IE-spezifische Methoden zum Binden und Entbinden von Ereignissen. Diese Methode existiert nur im IE. Im IE9-Browser ist jedoch eine allgemeinere addEventListener-Methode implementiert, um Ereignisse zu binden. Wenn im Browser eine document.addEventListener-Methode vorhanden ist, können Sie Versionen ausschließen, die nicht IE8 und niedriger sind, aber den IE9-Browser enthalten. Verwenden Sie daher &&!document.attachEvent später, um den IE9-Browser auszuschließen.

2 Es ist erwähnenswert, dass es im FF-Browser kein Mausradereignis gibt und der Zeitpunkt zum Auslösen des Scrollens DOMMouseScroll ist.

3 Eine weitere erwähnenswerte Sache ist, dass bei der Verwendung von addEventListener zum Binden eines Ereignisses „on“ nicht vor dem Ereignisnamen hinzugefügt wird, bei der Verwendung von „attachEvent“ zum Binden eines Ereignisses im IE jedoch „on“ erforderlich ist.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn