ブラウザでこれ以上スクロールできない場合の挙動を制御する「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 CLIでGA4を導入する方法
Visual Studio CodeからFTPソフトのTransmitを使用する拡張機能「Transmit」
Visual Studio Codeで複数ファイルを編集するときにタブやペインの操作方法
Nuxt.jsでコンポーネントを作成してコードの共通化を行う|Nuxt.jsの基本
Nuxt.jsでaxios-moduleを使ってAPIからデータを取得・表示する|Nuxt.jsの基本
SourceTreeのカスタムアクションを使って差分ファイルだけをまとめる方法
ソースコードをハイライトする軽量ライブラリ「Highlight.js」の導入方法と使い方
ブログに見出しを設置できるjQueryプラグイン「TOC | jQuery Table of Contents」
MacのRubyをrbenvで管理する方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
MacDownでシンタックスハイライト機能を使う方法と設定
Visual Studio Codeの基本|概要やインストールから日本語化など最低限の設定方法
Evernoteで特定のタグを除外して検索する方法
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」
WordPressって何なの?これからWordPressを勉強したい人がとりあえず知っておきたい事
Finderの右クリックメニューからフォルダをVisualStudioCodeで開く方法
Alfredで複数のアプリケーションを一括で起動するWorkflowの作成方法
様々な作業を自動化するgulpの基礎と導入方法
Macのキレイなマインドマップアプリ「MindNode 6」
Google Chromeの別ユーザーへの切り替えを簡単に行うKeyboard Maestroマクロ