2020.10.15

jQuery

jQueryプラグイン jquery.matchHeight.jsの使い方

jQueryプラグイン、jquery.matchHeight.jsの使い方です。全てのページ共通で、以下のhtml構造でテストします。デモページではクラス名boxのdivタグは12個並べています。

<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>

flexboxのみ(align-itemsプロパティなし:初期値のnormal)

jquery.matchHeight.js導入前のflexboxのみのページです。aline-itemsプロパティを指定していないため、初期値のnormalが適用されます。flexアイテムの高さは一番縦幅の大きいflexアイテムと同じになり、これは行単位で適用されます。aline-itemsプロパティにflex-startを指定すると高さが揃わなくなるため注意が必要です。
なお、高さの異なるh3タグ(タイトル部分)の高さをflexboxで揃えることはできません。

.container {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-start;
}
.box {
	width: calc(25% - 30px / 4);
	margin: 0 10px 10px 0;
	border: 1px solid #ddd;
	background: #fff;
}
.box:nth-child(4n) {
	margin: 0 0 10px 0;
}
@media screen and (max-width: 768px) {
	.box {
		width: calc(100% / 3 - 20px / 3);
	}
	.box:nth-child(3n) {
		margin: 0 0 10px 0;
	}
	.box:nth-child(4n) {
		margin: 0 10px 10px 0;
	}
	.box:nth-child(12) {
		margin: 0 0 10px 0;
	}
}

matchHeightデモ(タイトルに適用)

タイトルにjquery.matchHeight.jsを適用します。タイトルのh3タグを指定することで、h3タグの高さは一番縦幅の大きいh3タグと同じになります。これは行単位で適用されます。

$(window).on('load resize',function() {
	$('h3').matchHeight();
});

matchHeightデモ(オプションbyRow: falseをタイトルに適用)

タイトルにjquery.matchHeight.jsを適用します。オプションでbyRow: falseを指定すると行単位の適用は解除されます。指定したh3タグの中で一番縦幅の大きいh3タグの高さが、全てのh3タグに適用されます。

$(window).on('load resize',function() {
	$('h3').matchHeight({
		byRow: false
	});
});

matchHeightデモ(オプションbyRow: falseをタイトルとクラス名boxに適用)

タイトルとクラス名boxのdivタグにjquery.matchHeight.jsを適用します。オプションでbyRow: falseを指定することで、全てのタイトルの高さとクラス名boxのdivタグの高さが揃います。

$(window).on('load resize',function() {
	$('h3').matchHeight({
		byRow: false
	});
	$('.box').matchHeight({
		byRow: false
	});
});

matchHeightデモ(768px以上でオプションbyRow: falseをタイトルに適用、767px以下でオプションremove: trueをタイトルに適用し解除)

タイトルにjquery.matchHeight.jsを適用します。768px以上でオプションのbyRow: falseを指定して全てのタイトルの高さを揃え、767px以下でremove: trueを指定して高さ揃えを解除します。

$(window).on('load resize',function() {
	if(matchMedia('only screen and (min-width: 768px)').matches) {
		$('h3').matchHeight({byRow: false});
	}
	if(matchMedia('only screen and (max-width: 767px)').matches) {
		$('h3').matchHeight({remove: true});
	}
});

関連記事

2021.03.14

jQuery

jQueryのcssメソッドで要素のCSSを取得・変更

デモページはこちら jQueryのcssメソッドで要素のCSSを取得・変更します。以下のhtmlの構造でテストします。 まずCSSの変更です。対象の要素に設定さ…

2020.09.10

jQuery

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

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

2020.09.06

jQuery

jQueryで発生したエラーの対処法

コンソールでjQueryのエラーが発生した場合の対処法です。エラー発生の有無はjQueryのバージョンやfull版・slim版の違いによっても異なります。1系や…

2020.10.11

jQuery

jQueryのhoverメソッドで要素にマウスカーソルが重なった時と離れた時の処理を実装

デモページはこちら jQueryのhoverメソッドで要素にマウスカーソルが重なった時と離れた時の処理を実装します。hoverメソッドは要素にマウスカーソルが重…

2020.09.23

jQuery

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

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

上に戻る