Twitter bootstrapカルーセルを実装しようとしていますが、機能していません。画像が自動的に切り替わりません。また、前/次のボタンが機能しません。
ブートストラップカルーセルが自動的にスライドしない および ブートストラップカルーセルが機能しない で提案されているように、jquery 1.7.1に切り替えようとしましたが、何も役に立たないようです。
任意のアイデアをいただければ幸いです。
<!DOCTYPE html>
<html>
<head>
<title>Slideshow Test</title>
<link href="css/bootstrap.css" rel="stylesheet" type="text/css" />
<script src="js/bootstrap.js"></script>
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/bootstrap-transition.js"></script>
</head>
<body>
<div id="myCarousel" class="carousel slide" style="width:450px">
<!-- Carousel items -->
<div class="carousel-inner">
<div class="item active"><img src="img/IMG_2.jpg"></div>
<div class="item"><img src="img/IMG_3.jpg"></div>
<div class="item"><img src="img/IMG_1.jpg"></div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div>
</div>
</body>
</html>
www.abbymilberg.com/bootstrap でそれとそのリンクされたファイルを見ることができます。
Jquery.jsをインクルードした後、bootstrap.jsをインクルードする必要があります。
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/bootstrap.js"></script>
適切な順序で.jsを含めても同じ問題が発生し、次のように「onclick」イベントでjavascriptを使用しないように修正しました。
<a class="left carousel-control" href="#myCarousel" data-slide="prev" onclick="$('#myCarousel').carousel('prev')">‹</a>
<a class="right carousel-control" href="#myCarousel" data-slide="next" onclick="$('#myCarousel').carousel('next')">›</a>
私はそれが最もクリーンな解決策ではないことを知っていますが、それは機能します。
私は同じ問題を抱えていました、そして私はcssにz-indexを追加することによってそれを修正しました:
.carousel-control.left, .carousel-control.right {
left: 0;
z-index: 1;
}
<div class="left carousel-control" data-target="#myCarousel" data-slide="prev"/>
<span class="glyphicon glyphicon-chevron-left"></span>
<span class="sr-only">Previous</span>
</div>
<div class="right carousel-control" data-target="#myCarousel" data-slide="next"/>
<span class="glyphicon glyphicon-chevron-right"></span>
<span class="sr-only">Next</span>
</div>
コントロールが開始する前に「カルーセル内部」を閉じてみてください
<div id="myCarousel" class="carousel slide" style="width:450px">
<div class="carousel-inner">
<div class="item active"><img src="img/IMG_2.jpg"></div>
<div class="item"><img src="img/IMG_3.jpg"></div>
<div class="item"><img src="img/IMG_1.jpg"></div>
</div>
<!-- Carousel nav -->
<a class="carousel-control left" href="#myCarousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#myCarousel" data-slide="next">›</a>
</div>
user2139170
による回答に加えて、これはカルーセルを構造化する正しい方法です(BootStrap 3.3.5):
<div id="myCarousel" class="carousel slide text-center" data-ride="carousel">
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
</ol>
<div class="carousel-inner" role="listbox">
<div class="item active">
<h4>A mind-bending lecture on applied philosophy by Oxford lecturer Ravi Zacharias.</h4>
<br>
<span class="font-normal">youtube/watch?v=3ZZaoavCsYE</span>
</div>
<div class="item">
<h4>Director of the Human Genome Project discusses the greatest mystery of life</h4>
<br>
<span class="font-normal">youtube/watch?v=EGu_VtbpWhE</span>
</div>
</div>
<a href="" class="left carousel-control" href="#myCarousel" role="button" data-slide="prev">
<span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
<span class="sr-only">Previous</span>
</a>
<a href="" class="right carousel-control" href="#myCarousel" role="button" data-slide="next">
<span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
<span class="sr-only">Next</span>
</a>
</div><!-- #myCarousel -->
<script>
$(function(){
$('.carousel-control').click(function(e){
e.preventDefault();
$('#myCarousel').carousel( $(this).data() );
});
});//END document.ready
</script>
注:この回答にはjQueryが必要なので、ライブラリがロードされていることを確認してください。もちろん、bootstrapにはjQueryが必要なので、すでに参照されているはずです。
同じ症状がありましたが、カルーセルにIDが含まれていないことが問題でした。コメントで他のユーザーが示唆しているように、.carousel
クラスを持つ同じdivにIDを追加し、ボタン/リンクでhref="#my-carousel"
を使用すると、問題が解決しました。
<div id="my-carousel" class="carousel slide" style="width:450px">
^----------------------------------v
<a class="carousel-control left" href="#my-carousel" data-slide="prev">‹</a>
<a class="carousel-control right" href="#my-carousel" data-slide="next">›</a>
</div>
同じページに2つのスライダーを追加する場合は、スライダーのIDを変更するだけです。
お気に入り 。 。 ...スライダーコード..。 。
<a href="#myCarousel" data-slide="prev" class="carousel-control-prev">
<span class="carousel-control-prev-icon"></span>
</a>
<a href="#myCarousel" data-slide="next" class="carousel-control-next">
<span class="carousel-control-next-icon"></span>
</a>