今回はサムネイル画像をクリックするとメイン画像が切り替わるJavaScriptをご紹介します。
こんな感じです。
目次
HTML
<img id="mainImage" src="https://www.nan-demo.work/image/sample01.jpg" alt="Main Image">
<ul id="thumbnailWrap">
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample01.jpg" alt="Thumbnail 1"></li>
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample02.jpg" alt="Thumbnail 2"></li>
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample03.jpg" alt="Thumbnail 3"></li>
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample04.jpg" alt="Thumbnail 3"></li>
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample05.jpg" alt="Thumbnail 3"></li>
</ul>
CSSは適宜変更してください。
CSS
img {
width:100%;
}
#mainImage {
width:100%;
}
#thumbnailWrap{
display: flex;
padding: 0;
width:100%;
}
#thumbnailWrap li {
width:20%;
list-style: none;
}
JavaScript
// サムネイル画像をクリックしたときの処理
document.querySelectorAll('.thumbnail').forEach(thumbnail => {
thumbnail.addEventListener('click', () => {
// メイン画像をサムネイル画像の src に切り替える
document.getElementById('mainImage').src = thumbnail.src;
});
});
See the Pen
サムネイル画像クリックでメイン画像切り替え(js) by Uchaaan (@Uchaaan)
on CodePen.
では、次にサムネイルにカレントをつける場合のJavaScriptをご紹介します。
HTML
<img id="mainImage" src="https://www.nan-demo.work/image/sample01.jpg" alt="Main Image">
<ul id="thumbnailWrap">
<li><img class="thumbnail current" src="https://www.nan-demo.work/image/sample01.jpg" alt="Thumbnail 1"></li>
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample02.jpg" alt="Thumbnail 2"></li>
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample03.jpg" alt="Thumbnail 3"></li>
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample04.jpg" alt="Thumbnail 3"></li>
<li><img class="thumbnail" src="https://www.nan-demo.work/image/sample05.jpg" alt="Thumbnail 3"></li>
</ul>
CSSは適宜変更してください。
CSS
img {
width:100%;
}
#mainImage {
width:100%;
}
#thumbnailWrap{
display: flex;
padding: 0;
width:100%;
}
#thumbnailWrap li {
width:20%;
list-style: none;
}
#thumbnailWrap li img {
filter: brightness(0.3);
}
#thumbnailWrap li img.current {
filter: brightness(1);
}
JavaScript
// サムネイル画像をクリックしたときの処理
document.querySelectorAll('.thumbnail').forEach(thumbnail => {
thumbnail.addEventListener('click', () => {
// メイン画像をサムネイル画像の src に切り替える
document.getElementById('mainImage').src = thumbnail.src;
// すべてのサムネイル画像から "current" クラスを削除する
document.querySelectorAll('.thumbnail').forEach(thumbnail => {
thumbnail.classList.remove('current');
});
// クリックされたサムネイル画像に "current" クラスを追加する
thumbnail.classList.add('current');
});
});
See the Pen
サムネイル画像クリックでメイン画像切り替え(カレントあり)(js) by Uchaaan (@Uchaaan)
on CodePen.
いかがでしょうか。
基本的な画像の切り替えとサムネイルにカレントとつける場合の2パターンをご紹介しました。
猫カワイイ(*´ω`*)