多くのシナリオでは、JavaScript でウィンドウまたは DOM 要素の幅、高さ、スクロール高さを取得する必要があります。 例: スクロール効果の実装、全画面レイアウトの作成、動的な絶対位置など。 この記事では、関連する DOM API: window.innerHeight、window.outerHeight、clientHeight、offsetHeight、scrollHeight、scrollTop などを紹介します (もちろん、各属性には対応する幅があります)。
ウィンドウ全体の高さは、window.innerHeight および window.outerHeight を通じて取得できます。ここで:
高さを幅に変更することも機能します (それぞれ innerWidth と externalWidth)。
注: IE8 以下では、このセクションで紹介する window.innerHeight などのプロパティはサポートされていません。
window.innerHeight をサポートしていないブラウザでは、documentElement と body のサイズを読み取ることができます。それらのサイズは window.innerHeight と同じです (実際にはまったく同じではありません)。 、次のセクションを参照してください)。
document.documentElement.clientHeightdocument.body.clientHeight
ここで、documentElement はドキュメントのルート要素、つまり タグです。
Document.documentElement 読み取り専用プロパティは、ドキュメントのルート要素である Element (たとえば、HTML ドキュメントの 要素) を返します – MDN
<🎜。 > body は、名前が示すように、 タグです。この2つの方法は互換性が良くIE6まで対応可能ですが、書くのが難しいです。ベスト プラクティス
var height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
実際、clientHeight よりも offsetHeight を使用する方が優れています。詳細については、以下を参照してください。
スクロールの高さ
すべての DOM 要素には上記の 4 つの属性があります。固定サイズを指定し、それを表示するには overflow:scroll を設定するだけです。
要素の内部の高さをピクセル単位で返します。これにはパディングは含まれますが、水平スクロールバーの高さ、境界線、マージンは含まれません
は、要素の境界線、要素の垂直パディング、要素の水平スクロールバー (存在する場合、レンダリングされる場合)、および要素の CSS 高さを含む測定値です。
は、オーバーフローにより画面に表示されないコンテンツを含む要素のコンテンツの高さの測定値です
要素のコンテンツが上にスクロールされるピクセル数。
対応する水平属性は、clientWidth、offsetWidth、scrollWidth、scrollLeft です。
参考資料