11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【メモ】マウスホイールのスクロール方向を横に(JavaScript)

Last updated at Posted at 2018-07-06

横スクロールのサイトを作るとき、マウスホイールで横方向に移動させるための方法メモ。

window.addEventListener("mousewheel", e => {
    if (e.deltaX === 0) {
        e.stopPropagation()
        e.preventDefault()
        // noinspection JSSuspiciousNameCombination
        window.scrollBy(e.deltaY, 0)
    }
})
  • mousewheelイベントを監視。scrollだと、そもそもスクロールできない個所ではイベントが発火しない。
  • e.deltaX及びe.deltaYで移動方向と量を取得。
  • 横スクロール可能なマウスでの横スクロールを阻止しないため、preventDefaultするのはX方向への移動が発生していない場合のみ。
  • window.scrollByでスクロール実行。ここではdeltaYをそのまま使っているが、適度な係数をかけてもいいかもしれない。
  • IntelliJは親切にも「Y軸の値をX軸に設定していますよ」という警告を出してくれる。凄い。でも今回はこれで正しいので、// noinspectionで警告を消す。
11
6
1

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
11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?