質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1217閲覧

JavaScriptでスライドショーの下にある黒丸の連動が上手くいかない

ntttt

総合スコア49

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2019/09/01 06:45

編集2019/09/01 06:47

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">&lt;</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">&gt;</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」のクラスが反映されて、色が変更されるようにしたいです。

分かりずらい説明文とコードですみません。
修正依頼がある場合は、必ず対応します。

ご知恵を拝借したいです。
宜しくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/09/01 06:47

初コメント失礼します。。。m(_ _)m あの、質問のタイトルを明確にJavaScriptで何をしたいのか書かないと低評価を押されてしまいますよ・・・明確に書き直すことをオススメします・・・
退会済みユーザー

退会済みユーザー

2019/09/01 06:49 編集

あっ・・・今編集確認しました。失礼しました。
ntttt

2019/09/01 06:53

いえいえ、先走ってしまい、タイトルを書くのを忘れて投稿してしまいました。 ご指摘ありがとうございます。
退会済みユーザー

退会済みユーザー

2019/09/01 06:58 編集

大丈夫です。(^^) あの、力不足かもしれませんが、こちらのサイトはどうでしょうか? →https://techacademy.jp/magazine/9529 参考にしてみてください。m(_ _)m
ntttt

2019/09/01 07:08

JSでの実装が上手くいかなけれれば、こちらのサイトを参考にさせていただきます。 情報提供ありがとうございます。
退会済みユーザー

退会済みユーザー

2019/09/01 07:10 編集

力不足で申し訳ありませんでした。???? いつでも質問してください!
guest

回答1

0

ベストアンサー

ここ無限ループになっていませんか?

diff

1--for(let i = 0; 0 < point.length; i++) 2++for(let i = 0; i < point.length; i++)

投稿2019/09/01 17:54

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ntttt

2019/09/03 16:06

解決することができました! ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問