web-dev-qa-db-ja.com

Bootstrapカルーセルトランジションと前/次のボタンが機能しない

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">&lsaquo;</a>
                <a class="carousel-control right" href="#myCarousel" data-slide="next">&rsaquo;</a>
            </div>
        </div>    
    </body>
</html>

www.abbymilberg.com/bootstrap でそれとそのリンクされたファイルを見ることができます。

4
user1691664

Jquery.jsをインクルードした後、bootstrap.jsをインクルードする必要があります。

<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/bootstrap.js"></script>
9
Daniil Ryzhkov

適切な順序で.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>

私はそれが最もクリーンな解決策ではないことを知っていますが、それは機能します。

16
user2139170

私は同じ問題を抱えていました、そして私はcssにz-indexを追加することによってそれを修正しました:

.carousel-control.left, .carousel-control.right {
  left: 0;
  z-index: 1;
}
3
Kimmiekim
<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>
3
Celena jas

コントロールが開始する前に「カルーセル内部」を閉じてみてください

<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">&lsaquo;</a>
    <a class="carousel-control right" href="#myCarousel" data-slide="next">&rsaquo;</a>

</div>
2
noel

user2139170による回答に加えて、これはカルーセルを構造化する正しい方法です(BootStrap 3.3.5):

jsFiddle Example

<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が必要なので、すでに参照されているはずです。

1
cssyphus

同じ症状がありましたが、カルーセルに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">&lsaquo;</a>
    <a class="carousel-control right" href="#my-carousel" data-slide="next">&rsaquo;</a>
</div>
1
Antoine Bolvy

同じページに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>
0
Sourabh Chavan