UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【CSS】overscroll-behaviorでスクロール連鎖を止める

モーダルを表示している時、手前のレイヤーのスクロールが下までいくと後ろのレイヤーがスクロールしてしまう問題

f:id:uggds:20220408224040p:plain:w300

いままで、bodyにposition: fixedつけたり、overflow: hiddenつけたりしていたが、overscroll-behaviorで解決できることを知ったので調べる

developer.mozilla.org

overscroll-behaviorは、スクロール領域の境界に達したときにブラウザーが何をするかを設定するCSSプロパティ

使える値

  • auto
    デフォルト値。これまで通り、スクロール連鎖を止めず、手前のレイヤーが終端までいったら後ろのレイヤーがスクロールする。
  • contain
    この値が設定された要素の内部のみスクロールされ、後ろのレイヤーはスクロールしないようにできる。
  • none containに加えてバウンススクロールも抑制する。バウンススクロールとはスクロールが終端まで達した時に上部にbody要素がチラ見えするやつ。

f:id:uggds:20220408230751p:plain:w200

iOS Safariでは使えないみたいなのでデスクトップPCのモーダルで使うことを検討したい

f:id:uggds:20220408231037p:plain

https://caniuse.com/css-overscroll-behavior