ホームページ  >  記事  >  ウェブフロントエンド  >  ネイティブ JS バインディング プーリー スクロール イベントは、一般的なブラウザーの JavaScript スキルと互換性があります

ネイティブ JS バインディング プーリー スクロール イベントは、一般的なブラウザーの JavaScript スキルと互換性があります

WBOY
WBOYオリジナル
2016-05-16 16:42:511569ブラウズ

ホイール スクロールのイベントは Web ページの特殊効果で発生しますが、実装方法はブラウザーによって異なります。以下で実装したメソッドは一般的なブラウザと互換性があります。

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 IE を区別するために document.addEventListener && !document.attachEvent を使用するのはなぜですか?

attachEvent と detachEvent は、イベントのバインドとバインド解除のための IE 固有のメソッドです。このメソッドは IE にのみ存在します。ただし、IE9 ブラウザでは、イベントをバインドするために、より一般的な addEventListener メソッドが実装されています。ブラウザーに document.addEventListener メソッドがある場合、IE8 以下ではないバージョンを除外できますが、IE9 ブラウザーは含まれるため、後で &&!document.attachEvent を使用して IE9 ブラウザーを除外します。

2 FF ブラウザにはマウスホイール イベントがなく、スクロールをトリガーする時間が DOMMouseScroll であることに注意してください。

3 もう 1 つの注目すべき点は、addEventListener を使用してイベントをバインドする場合、on はイベント名の前に追加されませんが、attachEvent を使用して IE でイベントをバインドする場合は、on が必要であることです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。