2020.11.08

jQuery

プラグインを利用せずにjQueryで実装する高さ揃え

デモページはこちら

jquery.matchHeight.jsのようなプラグインを利用せず、jQueryのみでhtml要素の高さ揃えを実装します。プラグイン利用時と違い、画面リサイズ時に高さが可変の場合は対応できない制約があります。以下のhtml構造の、高さの異なるh3タグでテストします。

<div class="container">
    <div class="box">
        <img src="images/photo01.jpg" alt="">
        <h3>タイトル01</h3>
        <p>ダミーテキストダミーテキストダミーテキスト</p>
    </div>
    <div class="box">
        <img src="images/photo02.jpg" alt="">
        <h3>タイトル02<br>タイトル02</h3>
        <p>ダミーテキストダミーテキストダミーテキスト</p>
    </div>
    <div class="box">
        <img src="images/photo03.jpg" alt="">
        <h3>タイトル03<br>タイトル03<br>タイトル03</h3>
        <p>ダミーテキスト</p>
    </div>
    <div class="box">
        <img src="images/photo04.jpg" alt="">
        <h3>タイトル04</h3>
        <p>ダミーテキスト</p>
    </div>
</div>

JavaScriptのwindow.matchMediaメソッドを利用してPCとスマホで処理を分けます。スマホでは画面リサイズ時にh3タグの高さが変わるため、heightをautoに指定します。PCでは画面リサイズ時にh3タグの高さが変わらないため、高さの一番大きいh3タグのheightを全てのh3タグに指定します。

function matchFunc(){
	if(window.matchMedia("(max-width:768px)").matches){
		$('h3').height('auto');
	}
	if(window.matchMedia("(min-width:769px)").matches){
		var maxHeight = 0;
		$('h3').each(function() {
			if ($(this).height() > maxHeight) maxHeight = $(this).height();
		});
		$('h3').height(maxHeight);
	}
}
//読み込み時
document.addEventListener("DOMContentLoaded", matchFunc);
//リサイズ時
window.matchMedia("(max-width:768px)").addListener(matchFunc);

関連記事

2020.09.21

jQuery

jQueryで兄弟要素を取得(next・nextAll・prev・prevAll・siblings)

デモページはこちら jQueryで兄弟要素(同階層の要素)を取得するメソッドのまとめです。対象要素の直後の要素を取得するnext、対象要素の直後以降の要素を全て…

2021.01.04

jQuery

トップへ戻るボタンをフッターの上部に表示

デモページはこちら jQueryでフッターの高さを取得し、ユーザーがページ最下部までスクロールしても、トップへ戻るボタンをフッターよりも上部に表示します。 フッ…

2020.10.02

jQuery

jQueryのeachメソッドの使い方

デモページはこちら jQueryのeachメソッドの使い方です。eachメソッドには関数を指定します。関数の引数として「index(インデックス番号)」と「el…

2020.09.10

jQuery

localStorageを利用してメインビジュアル切り替えデータを保持

デモページはこちら HTML5から導入されたWeb Storageの一種localStorageを利用して、メインビジュアルを切り替えた際のデータをブラウザに保…

2020.09.23

jQuery

ページ最下部でトップへ戻るボタンを表示

デモページはこちら ユーザーがページ最下部までスクロールしたタイミングで、トップへ戻るボタンをフェードインで表示します。ボタンをクリックまたはページ最下部よりも…

上に戻る