LoginSignup
9
9

More than 5 years have passed since last update.

wheelイベントが返すdeltaY値のブラウザ別挙動

Posted at

wheel イベントが返す event.deltaY の値が、ブラウザによって割と異なっていたという話です。

el.addEventListener('wheel', function(event) {
  console.log(event.deltaY);  // この値
});

実際に手動で心をこめて動かした結果を元にしており、何か間違っていたらすみません。

Chrome

  • 値は必ず 0 から始まり、0 で終了する
  • e.g. [0, 1, 3, 5, 7, 8, 6, 0]
  • スクロール方向に可動幅がない場合も、ホイールに掛かった慣性通りにイベントが発火する

IE10, IE11

  • 値は必ず 0 以外から始まり、0 以外で終了する
  • 値には小数点以下が含まれる
  • e.g. [1.11, 3.33, 5.55, 7.77, 8.88, 6.66]
  • スクロール方向に可動幅がない場合も、ホイールに掛かった慣性通りにイベントが発火する(Chromeと同じ)
  • 下スクロールを行った時に、数値にマイナス(=本来と逆の値)が含まれることがある
    • 上方向は試してないけど、多分発生するのではないか

Safari

  • 値は必ず 0 以外から始まり、0 以外で終了する
  • e.g. [1, 3, 5, 7, 8, 6]
  • スクロール方向に可動幅がない場合は、1イベントしか発火しない

Firefox

担当サービスでシェアが5%くらいだったので調べませんでした

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9