ページ内の同じ種類のコンテナの高さを、最大値に合わせて統一する。

ページ内の同じ種類のコンテナの高さを、最大値に合わせて統一する。

jQueryで同じクラスの複数要素の高さを、各要素の高さの最大値に揃える機能を実装しています。ウィンドウの読み込み時やリサイズ時に処理を行い、レイアウトのズレを防ぎつつ、パフォーマンス改善のためデバウンス処理も導入しています。

同じクラス要素の高さを最大値に揃える jQuery 関数(デバウンス対応)

.map()

map() は、各要素を関数に渡して現在のマッチした集合に適用し、戻り値を含む新しい jQuery オブジェクトを生成します。

function ResizeAll(){
var $box = $('.box');
$box.css({
	"height": "auto"
});
$box.height(Math.max.apply(null, $box.map(function () {
	return $(this).height();
})));
}

関数を作成したら、指定されたイベントで実行(トリガー)すればOKです。
例えば、以下のようになります:

// doc ready 時
$(function(){
ResizeAll();
});
// window の load および resize 時
$(window).on("load resize",function(){
ResizeAll();
});

コード解説

  • .map() 関数で各 .box 要素の高さを取得し、配列化する。
  • その高さの最大値を算出し、すべての .box に対して一括でその高さを適用する。
  • 初期化として高さを "auto" にリセットし、内容の変化に対応。
  • 実行はページの読み込み完了時(document.ready)、およびウィンドウのリサイズやロード完了時に行うことで、動的なレイアウト変更にも対応。

注意点・補足

  • コンテンツの動的な追加や削除がある場合は、都度 ResizeAll() を再呼び出しする必要がある。
  • 高さ固定がレイアウトを崩すケースもあるため、レスポンシブ対応時は状況に応じて呼び出しを調整。
  • CSSの box-sizing 設定によって高さ計算が変わる場合があるので注意。

まとめ

今回のコードは、同じ種類の複数コンテナの高さを揃えるためのシンプルかつ効果的なjQuery実装です。さらに、ウィンドウリサイズ時の多重実行を防ぐデバウンス処理の導入や、対象要素の存在チェックCSS単位の明示などの工夫により、パフォーマンスと堅牢性が大幅に向上しました。

こうした最適化により、ページの表示崩れや無駄な処理を防ぎ、より安定したユーザー体験を実現できます。動的な要素追加など変化の多い環境でも、適宜関数を再呼び出すことで柔軟に対応可能です。

関連記事
固定ヘッダー対応!jQueryベースのアンカーリンク平滑スクロール+位置補正実装
固定ヘッダーで隠れない! ページ内リンクをクリックしてもスクロール先が見えない問題を、jQueryを使って滑らかに解決。スムーズスクロール+動的補正により、非同期コンテンツにも対応した実用的な実装コードを紹介します。
キウイフルーツ
キウイフルーツ
1ヶ月前
固定ヘッダー対応!jQueryベースのアンカーリンク平滑スクロール+位置補正実装
スクロールに応じてアニメーション!jQueryで要素にクラスを追加する方法
jQuery を使ってページのスクロールイベントを監視し、特定の位置に到達した際に要素へ指定したクラスを追加することで、CSS アニメーションを利用した「要素の登場アニメーション」を実現できます。これはウェブデザインでよく使われる手法で、ページのインタラクション体験や視覚的な魅力を高める効果があります。
Details
Details
1ヶ月前
スクロールに応じてアニメーション!jQueryで要素にクラスを追加する方法
【jQuery】フルスクリーンナビゲーション時に背景のスクロールを無効にする方法
このjQueryコードは、トグルボタンの状態に応じてナビゲーションを開閉し、背景のスクロールを動的に制御します。クラス名 back をトリガーとして、html 要素に適切なスタイルを適用し、快適なフルスクリーンUIを提供します。
Details
Details
1ヶ月前
【jQuery】フルスクリーンナビゲーション時に背景のスクロールを無効にする方法
jQuery Sortableがスマホなどのタッチスクリーンで使えない場合の対処法
モバイル端末でのクリックイベントとの競合を避けるため、タップ操作には click より touchstart を使うことを推奨。 jQuery UI のバージョンによっては、内部構造が異なる場合があるため、導入時はテストを行うこと。
Details
Details
1ヶ月前
jQuery Sortableがスマホなどのタッチスクリーンで使えない場合の対処法
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)
日本語フォントはOSにより異なるため、複数のフォントを優先順に指定する。 "Yu Gothic"や"Yu Mincho"はモダンな日本語フォントでWindows 8.1以降に搭載。 "ヒラギノ角ゴ"や"ヒラギノ明朝"はmacOS向けで、高品質。 "メイリオ"や"MS 明朝"などは古いWindows環境にも対応。 ゴシック体はカジュアル・読みやすさ重視、明朝体はフォーマル・高級感重視に適している。
Details
Details
1ヶ月前
日本語用WebサイトのCSSフォント設定(日本語フォント/游ゴシック/游明朝)