html
1<div id="header-bg" class="header-bg"> 2</div> 3<div class="content-top-slide"> 4<div class="content-top-slide-prev"> 5<div class="content-top-slide-prev-btn" id="slide-prev"><</div> 6</div> 7<div class="content-top-slide-points"> 8<span id="content-top-slide-point1" class="content-top-slide-point content-top-slide-point-color"></span> 9<span id="content-top-slide-point2" class="content-top-slide-point"></span> 10<span id="content-top-slide-point3" class="content-top-slide-point"></span> 11<span id="content-top-slide-point4" class="content-top-slide-point"></span> 12<span id="content-top-slide-point5" class="content-top-slide-point"></span> 13<span id="content-top-slide-point6" class="content-top-slide-point"></span> 14</div> 15<div class="content-top-slide-next"> 16<div class="content-top-slide-next-btn" id="slide-next">></div> 17</div>
JavaScript
1const images = [ 2"https://jpg", 3"https://jpg", 4"https://jpg", 5"https://jpg", 6"https://jpg", 7"https://jpg" 8] 9 10const point = [ 11 document.getElementById("content-top-slide-point1"), 12 document.getElementById("content-top-slide-point2"), 13 document.getElementById("content-top-slide-point3"), 14 document.getElementById("content-top-slide-point4"), 15 document.getElementById("content-top-slide-point5"), 16 document.getElementById("content-top-slide-point6") 17]; 18let currentNum = 0; 19const header_bg = document.getElementById("header-bg"); 20const slide_point = document.getElementsByClassName( "content-top-slide-point" ) 21 22header_bg.style.backgroundImage = "url(" + images[ currentNum ] + ")"; 23 24const prev = document.getElementById("slide-prev"); 25const next = document.getElementById("slide-next"); 26 27prev.addEventListener("click",()=> { 28 if(currentNum === 0) { 29 currentNum = images.length - 1; 30 } else { 31 currentNum --; 32 } 33 34 header_bg.style.backgroundImage = "url(" + images[ currentNum ] + ")"; 35 for(let i = 0; 0 < point.length; i++) { 36 point[i].classList.remove("content-top-slide-point-color"); 37 } 38 point[currentNum].classList.add("content-top-slide-point-color"); 39}); 40 41next.addEventListener("click",()=> { 42 if(currentNum === images.length - 1) { 43 currentNum = 0; 44 } else { 45 currentNum ++; 46 } 47 48 header_bg.style.backgroundImage = "url(" + images[ currentNum ] + ")"; 49 for(let i = 0; 0 < point.length; i++) { 50 point[i].classList.remove("content-top-slide-point-color"); 51 } 52 point[currentNum].classList.add("content-top-slide-point-color"); 53});
現在スライドショーを作成中ですが、よくあるスライドショーの下にあるスライドショーと連動する丸が上手く作動しません。
スライドショーの下にあるスライドショーと連動する丸のイメージ画像
・コードでしていること
1.下の一つの丸にだけ「content-top-slide-point-color」という色を黒にするcssのクラスを持たせています。
2.nextやprevをクリックされたときに、for文を使って全ての丸から「content-top-slide-point-color」削除しています。
3.「currentNum」を使って、特定の1つの丸にだけ「content-top-slide-point-color」のクラスを追加します。
・現状
nextやprevをクリックされたときに、「content-top-slide-point-color」削除されて、全ての丸が同じ色になります。
・やりたいこと
nextやprevをクリックされたときに、次の丸、若しくは前の丸に「content-top-slide-point-color」のクラスが反映されて、色が変更されるようにしたいです。
分かりずらい説明文とコードですみません。
修正依頼がある場合は、必ず対応します。
ご知恵を拝借したいです。
宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー