複数の画像を個別に切り替える方法
Webページ上で、複数の商品画像を個別に切り替える方法について解説します。
一般的なサムネイル画像のクリックで大きな画像を変更する機能を、商品ごとに適用する方法を紹介します。
HTML コード
以下の HTML は、サンプルとして商品リストを表示するものです。各商品には、サムネイル画像をクリックすると対応する大きな画像が切り替わる仕組みを組み込んでいます。
<ul class="item_box">
<li>
<div class="center">
<div class="photo_area">
<img src="sample/sample1.jpg" id="bigimg">
</div>
<ul>
<li><img src="sample/sample1.jpg" class="thumb" data-image="sample/sample1.jpg"></li>
<li><img src="sample/sample2.jpg" class="thumb" data-image="sample/sample2.jpg"></li>
<li><img src="sample/sample3.jpg" class="thumb" data-image="sample/sample3.jpg"></li>
</ul>
</div>
<div class="text_box">
<ul class="text">
<li>サンプル商品A</li>
<li class="amount">10,000円<span>(税込)</span></li>
</ul>
</div>
</li>
<li>
<div class="center">
<div class="photo_area">
<img src="sample/sample4.jpg" id="bigimg">
</div>
<ul>
<li><img src="sample/sample4.jpg" class="thumb" data-image="sample/sample4.jpg"></li>
<li><img src="sample/sample5.jpg" class="thumb" data-image="sample/sample5.jpg"></li>
<li><img src="sample/sample6.jpg" class="thumb" data-image="sample/sample6.jpg"></li>
</ul>
</div>
<div class="text_box">
<ul class="text">
<li>サンプル商品B</li>
<li class="amount">15,000円<span>(税込)</span></li>
</ul>
</div>
</li>
</ul>
JavaScript コード
次に、サムネイル画像をクリックすると、
該当する商品ごとに大きな画像を変更する JavaScript を記述します。
document.querySelectorAll('.thumb').forEach(item => {
item.addEventListener('click', function () {
// クリックされた thumb の親の .center 内にある img を取得
const bigImg = this.closest('.center').querySelector('#bigimg');
if (bigImg) {
bigImg.src = this.dataset.image;
}
});
});
コードの解説
document.querySelectorAll('.thumb')
で全てのサムネイルを取得
thumb
クラスを持つすべての画像要素に対してイベントリスナーを設定します。
クリックイベントの追加
item.addEventListener('click', function () {...})
により、クリックしたサムネイルの data-image
に設定された画像パスを取得します。
closest('.center')
を使用
クリックされたサムネイルの親要素(.center
)を取得し、その中の bigimg
の src
を変更します。
動作イメージ
サンプル画像1のサムネイルをクリックすると、1つ目の bigimg
が切り替わる。
サンプル画像4のサムネイルをクリックすると、2つ目の bigimg
が切り替わる。
各商品ごとに bigimg
が独立して変更される。
まとめ
この方法を使用すると、複数のアイテムがある場合でも、
それぞれの bigimg
を個別に変更できるようになります。
特に商品リストページやフォトギャラリーなどに活用できます。
このコードをカスタマイズして、さらに使いやすい UI を作成してみてください
フォームのチェックボックスをクリックすると別のテキストボックスにテキストを挿入する方法
3月 6, 2025ハンバーガーメニューでナビゲーションリンクをクリックするとメニューを閉じる方法
3月 2, 2025Splide.js で Lazy Load による画像非表示を防ぐ方法
2月 25, 2025