###実現したいこと
左右のインディケータをクリックする以下のタイミングでキャプション文字をfadeInさせたいです。
カルーセルのスライドは4枚あります。1枚目のスライドのインディケータをクリックすると2枚目のキャプション文字がfadeInし、2枚目のスライドのインディケータをクリックをすると3枚目のキャプションがfadeInし...という流れを実装したいです。
###現状
1枚目に表示されているスライドのインディケータをクリックすると2枚目のスライドの文字がfadeInしているのは良いのですが、3枚目と4枚目のスライドも、1枚目のスライドのインディケータをクリックするタイミングでfadeInしてしまいます。
js
$(function() { $(".carousel-caption").fadeIn(); $("#carousel-example-generic").on("slide.bs.carousel",function() { $(".carousel-caption").fadeOut("fast"); }); $("#carousel-example-generic").on("slid.bs.carousel",function() { $(".carousel-caption").fadeIn(5000); }); });
html
<section class="carousel-size"> <div id="carousel-example-generic" class="carousel slide"> <div class="carousel-inner"> <div class="item active"> <img src="images/slide1.jpg" alt="slide1" width="100%"> <div class="carousel-caption"> 文章 </div> </div> <div class="item"> <img src="images/slide2.jpg" alt="slide2" width="100%"> <div class="carousel-caption"> 文章 </div> </div> <div class="item"> <img src="images/slide3.jpg" alt="slide3" width="100%"> <div class="carousel-caption"> 文章 </div> </div> <div class="item"> <img src="images/slide4.jpg" alt="slide4" width="100%"> <div class="carousel-caption"> 文章 </div> </div> </div> <a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left"></span> </a> <a class="right carousel-control" href="#carousel-example-generic" data-slide="next"> <span class="glyphicon glyphicon-chevron-right"></span> </a> </div> </section>
###問題点
コーディングを確認すると確かに上記の動きになることは理解できるのですが、どのようにコーディングすれば「実現したいこと」に記載したような動きになるか、わかりません。
###試したこと
各キャプションに番号を割り当てユニークなクラスにし、それぞれ同様のコーディングをしました。
しかし、文字が表示されなくなりました。画像の表示、スライドは正常です。
js
$(function() { $(".carousel-caption2").fadeIn(); $("#carousel-example-generic").on("slide.bs.carousel",function() { $(".carousel-caption2").fadeOut("fast"); }); $("#carousel-example-generic").on("slid.bs.carousel",function() { $(".carousel-caption2").fadeIn(5000); }); }); $(function() { $(".carousel-caption3").fadeIn(); $("#carousel-example-generic").on("slide.bs.carousel",function() { $(".carousel-caption3").fadeOut("fast"); }); $("#carousel-example-generic").on("slid.bs.carousel",function() { $(".carousel-caption3").fadeIn(5000); }); }); $(function() { $(".carousel-caption4").fadeIn(); $("#carousel-example-generic").on("slide.bs.carousel",function() { $(".carousel-caption4").fadeOut("fast"); }); $("#carousel-example-generic").on("slid.bs.carousel",function() { $(".carousel-caption4").fadeIn(5000); }); });
html
<section class="carousel-size"> <div id="carousel-example-generic" class="carousel slide" data-interval="8000"> <div class="carousel-inner"> <div class="item active"> <img src="images/slide1.jpg" alt="slide1" width="100%"> <div class="carousel-caption"> 文章 </div> </div> <div class="item"> <img src="images/slide2.jpg" alt="slide2" width="100%"> <div class="carousel-caption2"> 文章 </div> </div> <div class="item"> <img src="images/slide3.jpg" alt="slide3" width="100%"> <div class="carousel-caption3"> 文章 </div> </div> <div class="item"> <img src="images/slide4.jpg" alt="slide4" width="100%"> <div class="carousel-caption4"> 文章 </div> </div> </div> <a class="left carousel-control" href="#carousel-example-generic" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left"></span> </a> <a class="right carousel-control" href="#carousel-example-generic" data-slide="next"> <span class="glyphicon glyphicon-chevron-right"></span> </a> </div> </section>
###追記
左右のインディケータをクリックすると、3枚目以降にfadeInした文字が映し出されてからfadeOutするため、期待している動作にならないようです。
よって、fadeOutがスライドする前に実行できれば期待動作になるようにも思えます。
以上、ご確認お願いいたします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/26 06:19
2017/11/26 07:15
2017/11/26 07:22