モーダルウィンドウなどを実装した際に、ページ全体のスクロールを禁止させたいという場面がよくあります。

追記:以前まで、PCやAndroidでは比較的簡単に実現させることができましたが、iOS Safariでは別の方法を使わなければうまくいきませんでした。

「overflow:hidden;」を使えば簡単にできそうですが、実はこれは iOS Safari ではうまくいきません。

iOSにおけるモーダルの背景固定が簡単になりました。

bodyタグに「overflow:hidden;」を設定

ウィンドウサイズを固定して、スクロールさせたくないサイトを制作するとき、<body>タグにoverflow:hidden;を効かせます。

body.is-modal {
	overflow:hidden; /* モーダルウィンドウが開かれた場合にのみ動的する */
}

今まで、上記方法ではiOS端末だと背景固定できず、別の実装が必要でしたが、iOS 16 からは上記設定でも背景固定できるようになりました。

たった1行のコードで済むので便利ですね。