2013-07-24 3 views
20

以下の画像のように、ブートストラップでカルーセルスライドの合計と現在の数を取得する方法を教えてください。カルーセルの合計と現在のスライド番号を取得する方法

Image showing current page and total number of pages

私は合計と現在の数を表示するには.numクラスに標準のブートストラップカルーセルと<div>を持っていると私は番号を取得するためにこのコードを使用しますが、それは

$('.num').html(){ 
    $('#myCarousel').carousel({number}) 
} 
を通過しませんでした

おかげ

更新:

slideがそれに.itemクラスを持って、あなたはこの

var totalItems = $('.item').length; 

アクティブslideのようなスライドの総数はあなた、activeという名前のクラスを持ってもらうことができます。このjsfiddle LINK

+0

? –

+0

こんにちはKhawer、私はBootStrap Carouselを使用しています –

+0

また、ここで実際の例を見つけることができます:http://jsfiddle.net/Behseini/QTjET/1/ –

答えて

52

でサンプルを見つけてください。あなたは、ブートストラップを結合することによって、これらの値を更新することができ

var currentIndex = $('div.active').index() + 1; 

このよう active slideのインデックスを取得することができますこの

$('#myCarousel').bind('slid', function() { 
    currentIndex = $('div.active').index() + 1; 
    $('.num').html(''+currentIndex+'/'+totalItems+''); 
}); 

EXAMPLE

+8

私は '' $( '#my_id')を使用しなければなりませんでした。 ( 'slid.bs.carousel'、function(){...}); BS v3.3.2の '' ' – pauljm

3

ブートストラップ3.2以上のようなカルーセルslidイベント:ブートストラップ用

slid.bs.carousel代わりのslidonを使用する代わりに3.0+ @Khawer Zeshanのコードの

carouselData.getItemIndex(carouselData.$element.find('.item.active')) 
11

更新bind。したがって、更新コードはそのようになります

var totalItems = $('.item').length; 
var currentIndex = $('div.active').index() + 1; 

$('#myCarousel').on('slid.bs.carousel', function() { 
    currentIndex = $('div.active').index() + 1; 
    $('.num').html(''+currentIndex+'/'+totalItems+''); 
}); 
0

jquery index()関数を使用すると、項目リスト内のアクティブな要素の現在のインデックスを取得できます。だから、コードは次のようになります:

var currentItem = $("#carousel-1 .item.active"); 
var currentIndex = $('#carousel-1 .item').index(currentItem) + 1; 
3
var totalItemsPop = $('#Mycarousel .item').length; 
$('#Mycarousel').on('slide.bs.carousel', function() { 
     setTimeout(function(){ 
      currentIndexPop = $('#Mycarousel div.active').index() + 1; 
      $('.num').html('' + currentIndexPop + '/' + totalItemsPop + ''); 
     }, 1000); 
    }); 

スライドイベントdivがアクティブになり、アクティブなインデックスを取得するので、設定時間アウト機能

0

との唯一の欠点の内側にあなたのコードを維持することはできませんした後、下のコードは、次のスライドに移動するまで表示されません(各スライドの変更後にトリガー)。あなたはカルーセルプラグインを使用している

JS/jQueryの

$('#carousel-slide').on('slid.bs.carousel', function() { 
    var carouselData = $(this).data('bs.carousel'); 
    var currentIndex = carouselData.getActiveIndex(); 
    var total = carouselData.$items.length; 

    var text = (currentIndex + 1) + " of " + total; 
    $('#carousel-index').text(text); 
}); 

HTML

<div id="carousel-index"> 
    <!-- Number will be added through JS over here --> 
</div> 
関連する問題