overscroll-behavior

プロパティ : overscroll-behavior

スクロール操作したときに前面のコンテンツを端までスクロールしたあとの挙動を制御

記述例
overscroll-behavior: contain;
overscroll-behavior-x、overscroll-behavior-y はまとめて設定できる。
2つの値の場合は overscroll-behavior: auto(横軸) contain(縦軸);

状態

overscroll-behavior: auto; // 初期値。スクロール連鎖が発生 // contain; //containはスクロール連鎖を抑制し、オーバースクロール効果を表示 // none; //noneはスクロール連鎖を抑制し、オーバースクロール効果も防止 //

親譲おやゆずりの無鉄砲むてっぽうで小供の時から損ばかりしている。小学校に居る時分学校の二階から飛び降りて一週間ほど腰こしを抜ぬかした事がある。なぜそんな無闇むやみをしたと聞く人があるかも知れぬ。別段深い理由でもない。新築の二階から首を出していたら、同級生の一人が冗談じょうだんに、いくら威張いばっても、そこから飛び降りる事は出来まい。弱虫やーい。と囃はやしたからである。小使こづかいに負ぶさって帰って来た時、おやじが大きな眼めをして二階ぐらいから飛び降りて腰を抜かす奴やつがあるかと云いったから、この次は抜かさずに飛んで見せますと答えた。


ハンバーガーメニューやダイアログなどの表示をした時に、ダイアログ内だけスクロールさせたい場合、背景をスクロール連鎖させたくない時に指定

  • overscroll-behavior: auto;
    初期値。スクロール連鎖が発生
  • overscroll-behavior: none;
    noneはスクロール連鎖を抑制し、オーバースクロール効果も防止
  • overscroll-behavior: contain;
    containはスクロール連鎖を抑制し、オーバースクロール効果を表示

オーバースクロール効果

スクロール境界に達した時の視覚的エフェクト(バウンド等)

以前はモーダル表示時、jsでbodyタグに modal-openクラスをつけて、cssでoverflow: hidden;にしていた

body.modal-open {
overflow: hidden;
}

overscroll-behavior: が効かない場合の注意点

記述例
対処法 : overflow-y: auto;を要素に記述。
原因 : スクロールしない要素に対して overscroll-behaviorを指定しても効果がないので、背面のページが代わりにスクロールしてしまう。

CSS

前の記事

スクロールスナップ