overscroll-behaviorプロパティでオーバースクロールを制御
overscroll-behavior
は、テキストエリアやスクロール可能な領域をスクロールして、境界に達したときの挙動を制御するCSSプロパティです。
ページのオーバースクロールの制御
特にモバイルブラウザだとページの境界を超えてオーバースクロール(バウンス)できますが、それを抑止したい場合は、body
要素に対して、次のようにプロパティを指定します。
body {
overscroll-behavior: none;
/* 垂直方向だけで良い場合はoverscroll-behavior-yで指定 */
}
個人的に、Webアプリケーションサイトとかなら抑止しなければならないケースはあると思いますが、一般的なWebサイト(LPとか)で抑止が必要なケースはあんまりないのかなと思います。(もしかしたらあるのかも)
コンポーネントのオーバースクロールの制御
ページではなく、コンポーネント(テキストエリア等)にオーバースクロールの制御をするケースとしては、スクロール連鎖(scroll chaining)をケアする時だと思います。
ちょっとしたサンプルを載せておきます。
次のサンプルは、テキストエリアの垂直方向のオーバースクロールについて、スクロールが境界に達した時にページ自体のスクロールに連鎖することを抑止するといったことをしています。
textarea {
width: 100%;
height: 200px;
overscroll-behavior-y: contain;
resize: none;
}
参考資料
ご利用の際は、プロパティの仕様・対応ブラウザをご覧ください。