2020/03/04

実機iPhoneで「-webkit-overflow-scrolling: touch; 」のせいでモーダルがおかしくなる







横スクロールさせてる中でモーダルウィンドウを設置した際に、ブラウザ(Mac Chrome)では大丈夫だったのですが、実機iPhoneで挙動がおかしくなってしまいました。

検証してみると、「-webkit-overflow-scrolling: touch;」が、悪さをしていました。



iPhoneで確認ください。

See the Pen 実機iPhoneで「-webkit-overflow-scrolling: touch; 」のせいでモーダルがおかしくなる by takapen (@takapen) on CodePen.







指定しないものと、以下3つのパターンを用意しました。
._webkit-scrolling {
  -webkit-overflow-scrolling: touch;/* これ */
}
._scrolling {
  overflow-scrolling: touch;
}
._both-scrolling {
  -webkit-overflow-scrolling: touch;/* これ */
  overflow-scrolling: touch;
}


実機iPhoneで見てみると、「-webkit-overflow-scrolling: touch;」があるときだけ、本来画面全体に表示したいモーダルが、横スライドの枠内に表示されてしまっています。


ちなみに「overflow-scrolling: touch;」がなくても慣性スクロールができているようで、調べてみるとsafari13(iOS 13)からデフォで慣性スクロールしてくれるようになったそうです。

参照:https://developer.apple.com/documentation/safari_release_notes/safari_13_release_notes#3314682