ブラウザでこれ以上スクロールできない場合の挙動を制御する「overscroll-behavior」プロパティ

Macのブラウザでこれ以上スクロールできない場所までスクロールしたのに、そこからさらに先へスクロールしようとすると画面が伸びて指を離すと跳ね返るような挙動になります。
要は「これ以上スクロールできませんよ」とユーザーに知らせるためのインタラクションです。
他にも左右にスワイプしたときにスマホの場合は「戻る」「進む」の挙動になるブラウザがあります。
このようなスマホブラウザ特有のスワイプ関連の機能は、デザインや作成したい機能によってオフにしたい場合があります(ウェブサイトというより、ウェブサービスの実装の場合は特に多いです)。
現状Safariには使えませんが、それ以外のブラウザでは使えるのがoverscroll-behaviorです。
overscroll-behavior
overscroll-behaviorは「auto」「contain」「none」の3種類の値があります。
| 値 | 内容 |
|---|---|
| auto | デフォルト値。ブラウザの挙動に任せる |
| contain | スクロール要素の外にはみ出さないようにする |
| none | スクロール要素の外にはみ出さないようにしつつ、 画面が伸びて指を離すと跳ね返るような挙動もオフになる |
基本はautoかnoneかどっちかで良さそうです。派生プロパティ
overscroll-behavior-xとoverscroll-behavior-yもあり、横方向のみと縦方向のみを制限できます。
左右にスワイプしたときの「戻る」「進む」動作は残しつつ、縦に伸ばしたときのスクロール効果だけ制御したいときに使えます。
対応ブラウザ
残念ながらSafariに対応していないのが現状です。
iPhoneユーザーの多くはSafariを使っていますし、SNSからリンクを開くとSafariで開かれてしまうので、overscroll-behaviorを使用するときは注意が必要です。
ただ、Google ChromeやFirefoxの挙動はオフにできるので、必要な場合は指定しておくと良さそうです。



Vue.jsで値段を表示するときに3桁ごとにカンマを入れる方法
さくらのレンタルサーバで.htaccessが原因で500エラーになってしまう場合のチェックリスト
Visual Studio Codeで英単語のスペルチェックをしてくれる拡張機能「Code Spell Checker」
iOS Safariで指定したフォントサイズにならない場合の対処法
Vue CLIで共通のSCSSファイルを読み込む方法
Google Chromeでinput要素の補完機能を使うと背景に色がついてしまう問題
Visual Studio Codeでショートカットキーを変更する方法
JavaScriptのテンプレートリテラル内で条件分岐を行う方法
SVGを操作するためのCSSプロパティまとめ
JavaScriptのtest関数と正規表現でバリデーションチェックを行う
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
日々の作業を短縮して、やるべきことに集中するための小技集 #1日1Tips – 2020年1月
Figmaで細かいアニメーションを作成できるプラグイン「Motion」
Alfred 4でスニペットを作成して使用する方法
Sketchの画像を図形でマスクしたり、グラデーションマスクをする方法
BetterTouchToolでトラックパッドやタッチバーにアクションを割り当てる
BacklogのURLパラメータを、Keyboard Maestroのタイムスタンプ機能を使って生成してリンクを開く方法
iTerm2でさらに細かい機能の設定ができる環境設定の「Advanced」タブ
単語登録はルールをキッチリ決めるよりも、とにかく登録・改善を繰り返した方が良さそう
iStat Menusの「天気」アイコン表示と設定
Fantastical 2で予定の登録時に使えるキーワードまとめ