HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTML DOMのscrollHeightプロパティとは?使い方をサンプルコード付きで解説

scrollHeightプロパティとは

HTML DOMのscrollHeightプロパティは、HTMLドキュメント内の要素の全体の高さ(コンテンツ+パディング)をピクセル(px)単位で返すプロパティです。

スクロールによって見えなくなっている部分も含めた要素の全高さを取得できるため、JavaScriptで動的にコンテンツの高さを判定したい場合や、「一番下までスクロールしたか」を検知したい場合などに活用されます。なお、scrollHeightにはパディングは含まれますが、ボーダー(border)とマージン(margin)は含まれない点に注意が必要です。

構文

scrollHeightプロパティの構文は以下のとおりです。

element.scrollHeight

対象となる要素に対して直接呼び出すだけで、戻り値として整数値(px単位)が返されます。読み取り専用のプロパティのため、値を代入することはできません。

サンプルコード

それでは、scrollHeightプロパティを使用した具体的な例を見てみましょう。以下のコードでは、段落要素(pタグ)のscrollHeightとscrollWidthを取得し、ボタンをクリックしたときに画面へ表示します。

<!DOCTYPE html>
<html>
<head>
<style>
   html{
      height:100%;
   }
   body{
      text-align:center;
      color:#fff;
      background: #ff7f5094;
      height:100%;
   }
   p{
      font-weight:700;
      font-size:1.2rem;
      height:80px;
      border:1px solid #fff;
      overflow:auto;
      width:250px;
      margin:20px auto;
   }
   .btn{
      background:#0197F6;
      border:none;
      height:2rem;
      border-radius:2px;
      width:35%;
      margin:2rem auto;
      display:block;
      color:#fff;
      outline:none;
      cursor:pointer;
   }
   .show{
      font-size:1.5rem;
   }
</style>
</head>
<body>
<h1>DOM scrollHeight/scrollWidth Property Demo</h1>
<p>Hi!I'm a para element in HTML with some dummy text.
Hi!I'm a para element in HTML with some dummy text.
Hi!I'm a para element in HTML with some dummy text.
Hi!I'm a para element in HTML with some dummy text.</p>
<button onclick="getHW()" class="btn">Get paragraph height & width</button>
<div class="show"></div>
<script>
   function getHW() {
      var para = document.querySelector('p');
      document.querySelector(".show").innerHTML="<div>Para Height = "+para.scrollHeight+" px</div><div>Para Width = "+ para.scrollWidth+" px</div>";
   }
</script>
</body>
</html>

実行結果

上記のコードをブラウザで実行すると、次のように表示されます。

HTML DOMのscrollHeightプロパティとは?使い方をサンプルコード付きで解説

この状態で「青色(Blue)」のボタンをクリックすると、段落要素のスクロール幅と高さが以下のように表示されます。

HTML DOMのscrollHeightプロパティとは?使い方をサンプルコード付きで解説

サンプルでは段落要素にheight:80pxoverflow:autoが指定されているため、画面上の表示領域は80pxですが、scrollHeightはダミーテキスト全体の高さを返します。これにより、スクロールで隠れている部分を含んだ実際のコンテンツ高さを確認できます。

関連するプロパティとの違い

scrollHeightと似たプロパティとして、以下のようなものがあります。用途に応じて使い分けるとよいでしょう。

  • clientHeight: 表示領域の高さ(パディングは含むが、スクロールで隠れた部分は含まない)
  • offsetHeight: ボーダーを含む要素全体の高さ
  • scrollWidth: scrollHeightの横幅版。スクロール部分を含む要素の全幅を返す
  1. HTML DOMのoffsetHeightプロパティとは?使い方とサンプルコードを解説

    HTML DOM offsetHeightプロパティの概要HTML DOMのoffsetHeightプロパティは、要素の高さに対応する数値を返します。この値には、パディング(padding)、ボーダー(border)、スクロールバーが含まれますが、マージン(margin)は含まれません。要素が画面上で実際に占める高さを取得したい場合に非常に便利なプロパティです。レイアウト計算や、要素のサイズに応じた動的な処理を行う際によく使われます。構文数値を返す場合の基本的な構文は以下の通りです。HTMLelement.offsetHeight戻り値はピクセル単位の整数値(Number型)として返されます。

  2. HTML DOMのVideo heightプロパティの使い方を解説

    HTML DOMのVideo heightプロパティは、メディア(動画)の高さに対応する数値(ピクセル単位)を取得・設定するために使用されます。このプロパティを活用することで、JavaScriptから動的に動画要素の表示サイズを制御できるようになります。 構文heightプロパティの構文は以下のとおりです。 height値の取得(ピクセル単位)mediaObject.height height値の設定(ピクセル単位)mediaObject.height = number それでは、Video heightプロパティの具体的な使用例を見ていきましょう。 サンプルコード<!DOCTYPE h