🥹

スマホブラウザのスクロールでアドレスバーが揺れる仕様に悩まされた話

に公開

症状

  • モーダルの左上の×ボタンがアドレスバー背面に隠れて、バツボタンが押せなくなった。
  • スクロール中にUIが縮み始めた瞬間に再現しやすい。

    サンプルとして Zenn のページを使っています(本記事の内容とは関係ありません)

    サンプルとして Zenn のページを使っています(本記事の内容とは関係ありません)

原因

  • 100vh を基準にしていたため、スクロールに伴うUIの伸縮でページの基準高さが揺れた
  • その揺れと、モーダルのフェード/スライドのタイミングが噛み合わず、×ボタンがノッチ下へ潜り込むことがあった。

解決

  • ページ全体を height: 100svh; で固定することで、アドレスバーを常時表示させることができた。
  • これにより×ボタンがアドレスバーの背面に隠れることはなくなった。(ハック的ではあるが)

※今回のアプリはゲーム寄りのUIだったため、ブラウザの「アドレスバーを縮めてコンテンツを広げる」という仕様はあまり意味がなく、このアプローチでも問題なかった。


サンプルとして Zenn のページを使っています(本記事の内容とは関係ありません)

Discussion