ブラウザでこれ以上スクロールできない場合の挙動を制御する「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の挙動はオフにできるので、必要な場合は指定しておくと良さそうです。



WordPressのカスタム投稿タイプを追加後、ページは存在しているはずなのに404になる場合の解決方法
js-cookieでウェブサイトのダークモード表示設定をユーザーごとに保存しておく方法
Visual Studio Codeのファイル横に表示されるファイルアイコンのテーマまとめ
常時SSL化の設定をしたのに「保護された通信」が表示されない時はパスにHTTPが残っているのかも?
Backlogで2段階認証を設定後、SourceTreeでアカウントエラーが発生する場合の対処法
HTTP/2が設定されているはずなのに、ブラウザ上でHTTP/1.1になってしまう場合はセキュリティソフトを確認
EJSのincludeで別ファイルを読み込むときの画像パスを指定する方法
コーディング時に「アノテーションコメント」を使ってコードを見やすく管理する
MacのRubyをrbenvで管理する方法
Visual Studio Codeで複数ファイルを編集するときにタブやペインの操作方法
iTerm2で「Use System Window Restoration Setting」を設定しているとアラートが表示されて機能しない
Google Chromeのサイト内検索(カスタム検索)機能を別のプロファイルに移行する方法
iPadで入力モードを切り替えずに数字や記号をすばやく入力する方法
iPhoneやiPadでYouTubeの再生速度を3倍速や4倍速にする方法
Keynoteで有効にしているはずのフォントが表示されない現象
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
AirPodsで片耳を外しても再生が止まらないようにする方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Macで複数ディスプレイを使っている場合に便利な設定集
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
chezmoi(シェモア)で始めるdotfiles管理
GitHubの通知を見逃さない!通知に特化したアプリ「Gitify」
Keyboard Maestroの変数基礎
Neovimを使い始める最初の一歩として便利な「LazyVim」
ウェブサイトをmacOSアプリとしてラッピングする「Unite Pro」