各ブラウザでマウスホイール操作を検知する方法が分かりましたので記事にします。検知する方法が各ブラウザで違うようなのでそれぞれのブラウザ用に条件分岐をする必要があります。下記のサンプルコードはIE6、IE7、IE8、Firefox、Chromeで動作確認しました。 ホイールが動かされたことを検知する まずはマウスホイールが動かされたらhelloというメッセージを表示するだけの場合です。 Firefoxの場合はaddEventListenerというメソッドを使います。その関数の第一引数に文字列「DOMMouseScroll」を、第二引数にイベントを検知したときに実行する関数を、第三引数にはここではfalseを指定します。第三引数はuseCaptureを有効にするかどうかを指定するのですが、この第三引数についての詳しい説明は下記が参考になります。JavaScript addEventListe
![[Javascript]各ブラウザでマウスホイールの操作を検知する](/image.pl?url=https%3a%2f%2fcdn-ak-scissors.b.st-hatena.com%2fimage%2fsquare%2f8d71ff5111e05619a10d29bb40d7aebaa75c8fbc%2fheight%3d288%3bversion%3d1%3bwidth%3d512%2fhttps%253A%252F%252Fs0.wp.com%252Fi%252Fblank.jpg&f=jpg&w=240)
仕様書を読んでもわかりにくい、addEventListener()の第3引数useCaptureの意味についてのメモ。 addEventListener()はIEでは未実装なので関係なし。 以下はFireFoxで確認。 useCaptureの意味 通常登録したイベントハンドラ(*1)はイベント伝搬のバブリングフェーズで呼ばれる。このため、DOM Treeの下の方のエレメントからイベントハンドラが順番に呼ばれる。 useCaptureをtrueにしてイベントハンドラを登録すると、キャプチャフェーズでイベントハンドラが呼ばれるようになる。このため、その他のイベントハンドラに先だって呼び出されるようになる。 (*1) 以下のものが含まれる。 DOMエレメントのプロパティに設定したイベントハンドラ(element.onmousedown = handler)HTMLタグに埋め込んだイベントハンド
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く