home
twitter
ページトップへ
目次
  • 「element.offsetHeight」を使うと何ができるのか?
  • 例えば、CSSで下記のように要素を定義した場合
  • 「element.offsetHeight」は実際に見えてる高さが取得できる。
  • 「element.offsetHeight」の使い方!
  • 具体的な使用例!アコーディオンメニューなどで使う
  • 読みと専用
  • 参考リンク!
  • おすすめの再生リスト!
  • まとめ!
about
categories
page
archive
皇帝ペンギンブログ

2025/01/13 (更新日:2025/01/14)

【JavaScript】「element.offsetHeight」の使い方!【分かりやすい】

Categories > JavaScriptの入門編
こんばんは!初めましての方は初めまして!
しゅーた(@chibasyuta)です!

ウェブ開発の中では、要素の高さを取得したい場面が多々あります。

この時に「element.offsetHeight」を使えば、簡単に要素の高さを取得できます。

この記事では「element.offsetHeight」の基本的な使い方やコード例を分かりやすく解説します!

この記事の内容!

  • 「element.offsetHeight」を使うと何ができるのか?
  • 「element.offsetHeight」の使い方!
また、下の動画でも「element.offsetHeight」の使い方について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それでは内容へ入ります!

目次
非表示
  • 「element.offsetHeight」を使うと何ができるのか?
  • 例えば、CSSで下記のように要素を定義した場合
  • 「element.offsetHeight」は実際に見えてる高さが取得できる。
  • 「element.offsetHeight」の使い方!
  • 具体的な使用例!アコーディオンメニューなどで使う
  • 読みと専用
  • 参考リンク!
  • おすすめの再生リスト!
  • まとめ!

「element.offsetHeight」を使うと何ができるのか?

「element.offsetHeight」を使うとHTML要素の高さを取得することができます。

取得できる値は、pxで表したときの整数値です。例えば要素の高さが300pxなら「300」が取得できます。

また、「padding」や「border」も含めた高さになります。

例えば、CSSで下記のように要素を定義した場合

例えば、CSSで下記のように要素を定義した場合

.example {
  height: 200px;
  padding: 10px;
  border: 5px solid black;
}

この要素の「offsetHeight」は「200 + 10 + 10 (上下の padding) + 5 + 5 (上下の border) = 230px」となります。

「element.offsetHeight」は実際に見えてる高さが取得できる。

「element.offsetHeight」を使うと、実際に見えてる高さが取得できます。

そこが、「element.scrollHeight」との違いになります。

「element.offsetHeight」の使い方!

// HTML要素を取得
const element = document.querySelector('.example');

// offsetHeightを表示
console.log(`要素の高さは: ${element.offsetHeight}px です。`);

このコードは、「class=”example”」の要素の高さをコンソールに表示します。

具体的な使用例!アコーディオンメニューなどで使う

<div class="container">
    <dl>
        <div class="box">
            <dt>項目</dt>
            <dd>内容です。内容です。内容です。内容です。内容です。内容です。内容です。</dd>
        </div>
        <div class="box">
            <dt>項目</dt>
            <dd>内容です。内容です。内容です。内容です。内容です。内容です。内容です。</dd>
        </div>
        <div class="box">
            <dt>項目</dt>
            <dd>内容です。内容です。内容です。内容です。内容です。内容です。内容です。</dd>
        </div>
        <div class="box">
            <dt>項目</dt>
            <dd>内容です。内容です。内容です。内容です。内容です。内容です。内容です。</dd>
        </div>
        <div class="box">
            <dt>項目</dt>
            <dd>内容です。内容です。内容です。内容です。内容です。内容です。内容です。</dd>
        </div>
        <div class="box">
            <dt>項目</dt>
            <dd>内容です。内容です。内容です。内容です。内容です。内容です。内容です。</dd>
        </div>
    </dl>
</div>
let dts = document.querySelectorAll('dt');

dts.forEach( (dt) => {
    dt.addEventListener('click', () => {
       
        dt.parentElement.classList.toggle('show');

        const content = dt.nextElementSibling;
        const isOpen = content.offsetHeight > 0;
        if ( isOpen ) {
            content.style.height = '0px';
        } else {
            content.style.height = `${content.scrollHeight}px`;
        }
    });
} );

読みと専用

 content.style.height = `${content.scrollHeight}px`;

「element.offsetHeight」は読み取り専用なので、取得した値を使って、高さの指定をする際は、上記のように使います。

参考リンク!

仕様書。
https://drafts.csswg.org/cssom-view/#dom-htmlelement-offsetheight

MDN。
https://developer.mozilla.org/ja/docs/Web/API/HTMLElement/offsetHeight

おすすめの再生リスト!

こちらは僕が制作したYouTubeの再生リスト「JavaScriptの入門編」です。

「JavaScriptの入門編」はWeb制作を勉強している方がJavaScriptに入門する際に知っておきたい情報をまとめたコンテンツとなります。

こちらの再生リストで「JavaScript」について「丁寧」に解説しているので、もし気になる方はチェックしてみてください!一緒に楽しく学習しましょう!!

まとめ!

「element.offsetHeight」は、要素の高さを知るための基本的なプロパティです。

正しく理解し、プロジェクトで最大限に活用しましょう!

この情報が役に立てば幸いです。試してみてください!

また、下の動画でも「element.offsetHeight」の使い方について詳しく解説しているので、一緒に実際にコードを書きながら学びたい方はこちらをどうぞ!

それではこんな感じでこの記事を終わります!

ではまたっ!

自分のロゴ!

皇帝ペンギン

全力で、書きます。
少しでもお役に立てたら幸いです。
楽しんで読んで下さい 。-_- 。
よろしくお願いします!

x(旧twitter) youtube
Categories
  • トップへ
  • ITパスポート (1)
  • programming (168)
    • CSSのアニメーション編 (26)
    • CSSのグリッドレイアウト編 (1)
    • CSSのセレクター編 (58)
    • CSSのフレックスボックス編 (1)
    • CSSのメディアクエリー編 (7)
    • CSSの基本編 (34)
    • HTMLのformタグ編 (1)
    • HTMLの基本編 (3)
    • JavaScriptの入門編 (30)
    • JavaScriptの基本編 (5)
    • Web制作をする環境を整えよう! (1)
  • Uncategorized (23)
  • VScode (1)
  • おすすめ商品! (1)
  • クラロワ (2)
  • マーケティング (17)
  • 大学生活 (7)
  • 心理学 (9)
  • 映画 (1)
  • 法学 (4)
  • 経済学 (4)
  • 読書 (7)
Pages
  • プライバシーポリシー
  • 免責事項
  • プロフィール
Archive
  • 2025年3月 (1)
  • 2025年1月 (9)
  • 2024年12月 (13)
  • 2024年11月 (5)
  • 2024年10月 (10)
  • 2024年9月 (15)
  • 2024年8月 (5)
  • 2024年7月 (6)
  • 2024年6月 (5)
  • 2024年5月 (10)
  • 2024年4月 (24)
  • 2024年3月 (11)
  • 2024年2月 (6)
  • 2024年1月 (10)
  • 2023年12月 (4)
  • 2023年11月 (3)
  • 2023年10月 (2)
  • 2023年9月 (3)
  • 2023年8月 (6)
  • 2023年7月 (3)
  • 2023年6月 (8)
  • 2023年5月 (2)
  • 2023年3月 (1)
  • 2023年2月 (1)
  • 2022年10月 (2)
  • 2022年9月 (2)
  • 2022年8月 (8)
  • 2022年7月 (2)
  • 2022年6月 (6)
  • 2022年5月 (9)
  • 2022年4月 (2)
  • 2022年2月 (4)
  • 2021年12月 (1)
  • 2021年11月 (4)
  • 2021年10月 (8)
  • 2021年9月 (14)
  • 2021年8月 (6)
  • 2021年6月 (1)
  • 2021年5月 (2)
  • 2021年4月 (1)
  • 2021年3月 (1)
  • 2021年2月 (2)
  • 2020年10月 (1)
  • 2020年7月 (1)
  • 2020年4月 (1)
  • 2020年1月 (1)
  • 2019年12月 (2)
© Copyright Syuta Chiba, 2019 All Rights Reserved.