JavaScript - 文法 - コンテンツの高さを取得


クラウディア 


1. 概要
2. コンテンツの高さを取得
3. 参考サイト

1. 概要

 本サイトのコンテンツは、ちいさい画面でない限り、横スクロールすることは、滅多にありません。  縦スクロールは、そのコンテンツの内容によってまちまちなのですが、ウィンドウの縦幅を超える場合、縦スクロールがブラウザに表示されるようになっています。  知りたかったのは、スクロール分も含めた、そのコンテンツの縦幅だったのです。

2. コンテンツの高さを取得

 縦スクロール幅を含めた、コンテンツの高さを求めるには。

document.documentElement.scrollHeight
 という変数を使います。  ただし、これ、注意が必要なのは、ブラウザがコンテンツを読み込んだ後に動作しないと、意味がありません。  当初、なんの考えもなしに、「<head></head>」内や、「<body>」の直後にスクリプトを書いていたら。  スクロールバーが表示されているものも、表示されていないものも、同じウィンドウ縦幅になってて、「なんじゃこら?」と思ったら。  コンテンツを読み込んだ後でないと、スクロール幅まで計算されないのでした。  「</body>」の直前にいれたら、うまくいきました。  間違いないのは、読み込んだよというイベントで発火させることです。  本ページのソースを読めばわかるのですが。  「<body>」直後に、下記のスクリプトを記述しています。

window.onload = function()
{
	const mySpanElement = document.getElementById('height');
	mySpanElement.textContent = " " + document.documentElement.scrollHeight + " ";
};
 この処理の結果、下記の表示になっているわけです。   このページの縦幅は

3. 参考サイト

 本ページは、「Gemini」伍長および「ChatGPT」軍曹を参考にさせていただきました。