Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ページの可視領域を算出する方法について整理する

Avatar for yamatai12 yamatai12
November 27, 2025

 ページの可視領域を算出する方法について整理する

今回の用途としてはwindow.visualViewport.heightが最適だなと判断しました。

理由
画面を拡大縮小(macで言うcommand + )すると値も連動する
画面をズームイン、ズームアウトすると値も連動する
仮想(画面)キーボードが表示されると値も連動する(モバイル)
動的ツールバーの高さは含まない

https://qiita.com/yamatai12/items/270a9cf924eed0b84db2

Avatar for yamatai12

yamatai12

November 27, 2025
Tweet

More Decks by yamatai12

Other Decks in Technology

Transcript

  1. 実際に検証してみた iPhone の Safari / Chrome + Web インスペクタで検証 入力フォームにフォーカスし、

    仮想キーボードの表示/非表示を切り替えながらコンソールで確認 14
  2. 例(数字は参考値) : キーボード表示中: visualViewport.height ≒ 320.5px キーボード非表示: visualViewport.height ≒ 547px

    一方で innerHeight / clientHeight はほぼ変化しない 確かに visualViewport.height は仮想キーボード表示に連動していた 15
  3. まとめ 1. 「可視領域の高さ」と言っても どの UI まで含めたいかで使うべき API は変わる 2. モバイルまで含めて「ユーザーが今見ている範囲」を

    正しく算出したいなら window.visualViewport.height が最適 本スライドの詳細は以下の記事にまとめています https://qiita.com/yamatai12/items/270a9cf924eed0b84db2 16