速報

imgproxyのICO処理にコード実行のおそれ|4.0.16だけでは残る問題を確認

CATEGORY

【JavaScript】ブラウザの高さを取得して要素のheightに設定する

※本ページのリンクにはプロモーションが含まれています。

window-height-elem

目次

本記事では、ブラウザの高さを取得して要素のheightに設定する方法をご紹介しています。

JavaScriptでブラウザの高さを要素のhightに設定したいんだけど、良い方法ないかな?

上記の疑問にお答えします。

本記事ではjQueryを使わない方法で実装しています。jQueryを使用した方法につきましては、下記の記事を参考にしていただければ幸いです。

では、解説していきます。

スポンサーリンク

ブラウザの高さを取得して要素のheightに設定する

ブラウザの高さを取得して、取得した値を特定の要素のheightに設定する場合、処理の流れは下記のようになります。

  • ブラウザの高さを取得する
  • 取得したブラウザの高さの値を設定する要素を取得する
  • 取得した要素にブラウザの高さの値を設定する
  • 上記の処理をロード、リサイズのイベント時に実行する

詳しく見ていきましょう。

HTML

本記事の解説では下記のHTMLを使用します。取得する要素はキービジュアルを想定しています。

<div id="keyvisual"></div>

ブラウザの高さを取得する

ブラウザ(ウィンドウ)の高さは下記の構文で取得することができます。

let wh = window.innerHeight;

innerHeightブラウザの内周(コンテンツが表示されている部分)の高さを取得する構文です。外周(ブラウザ自体のツールバーやメニュー等)を含めた高さを取得したい場合はouterHeightを使用します。本記事ではinnerHeightで進めていきます。

スポンサーリンク

ブラウザの高さを設定する要素を取得する

今回はidがkeyvisualとなっている要素を取得します。

let elem = document.getElementById('keyvisual');

classやタグ等で取得されたい場合は、下記記事の冒頭で各要素の取得方法をご紹介していますので、ご参考にして頂ければと思います。

【JavaScript】要素にclassを追加・削除する【classList】

ここまででブラウザのコンテンツ部分の高さと、取得したブラウザの高さを設定する要素を取得することができました。続いてロード、リサイズ時に実行するためのスクリプトを記述していきます。

ロード、リサイズのイベントに登録する

スクリプトはエンジニアによって書き方は様々だと思いますが、参考までにいくつかサンプルをご紹介させていただきます。

JS①

ロード、リサイズのイベントにそれぞれ同様の処理内容を記述する方法です。行数は増えますが、JavaScriptがわからない方でもなんとなく処理内容が追えるような書き方だと思います。

window.addEventListener("load", () => {
    let elem = document.getElementById("keyvisual");
    let wh = window.innerHeight;
    elem.style.height = wh + "px";
}, false);

window.addEventListener("resize", () => {
    let elem = document.getElementById("keyvisual");
    let wh = window.innerHeight;
    elem.style.height = wh + "px";
}, false);

JS②

同じ処理内容を関数にまとめて、関数を指定してイベントに登録する方法です。JavaScriptのサンプルスクリプトを検索していると下記のような書き方が多く見受けられます。一般的に使用される方法かと思います。

const myFunc = () => {
    let elem = document.getElementById("keyvisual");
    let wh = window.innerHeight;
    elem.style.height = wh + "px";
};

window.addEventListener("load", myFunc, false);
window.addEventListener("resize", myFunc, false);

JS③

イベントタイプを配列にしてループする方法になります。イベントタイプが増えた際は配列に値を追加するだけで済むため、楽ですが、ループしているのでパフォーマンスは落ちるかと思います。

const types = ["load", "resize"];

types.forEach(function (type) {
    window.addEventListener(type, () => {
        let elem = document.getElementById("keyvisual");
        let wh = window.innerHeight;
        elem.style.height = wh + "px";
    });
});

本記事でご紹介したすべてのコードを記述すると下記のデモのような画面が完成します。

See the Pen Window Height | JavaScript by ryohei (@intotheprogram) on CodePen.

デモの右上に表示されている「EDIT ON CODEPEN」をクリックしていただくと、CodePenのサイトでデモの内容を全画面で確認することができます。実際にロードやリサイズ等を試していただければと思います。

スポンサーリンク

最後に

今回はキービジュアルの要素をブラウザの高さいっぱいに表示することを想定して、記事にまとめてみました。キービジュアルはWEBサイトの印象そのもの。キービジュアルをいっぱいに表示することでメッセージを視覚的に伝えることができるため、最近では多くのサイトで採用されています。今後ウェブ制作をする中で、キービジュアルを目立たせたい場合に使用してみてはいかがでしょうか。

以上、JavaScriptでブラウザの高さを取得して要素のheightに設定する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク