Подтвердить что ты не робот

Как получить общий и текущий слайд Количество каруселей

Не могли бы вы сообщить мне, как я могу получить общее и текущее количество карусельных слайдов в загрузочном лотке, как изображение ниже?

Image showing current page and total number of pages

У меня есть стандартная карусель Bootstrap и <div> с классом .num для отображения общего и текущего числа, и я использовал этот код для извлечения чисел, но он не прошел через

$('.num').html(){
  $('#myCarousel').carousel({number})
}

Спасибо

Update:

Пожалуйста, найдите образец на этом jsfiddle LINK

4b9b3361

Ответ 1

Каждый slide имеет класс .item, вы можете получить общее количество слайдов, подобных этому

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

Active slide имеет класс с именем active, вы можете получить индекс active slide, как этот

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

Вы можете обновить эти значения, привязав событие карусели бутстрапа slid, подобное этому

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

ПРИМЕР

Ответ 2

Обновление кода @Khawer Zeshan

Для Bootstrap 3.0+ используйте slid.bs.carousel вместо slid и on вместо 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+'');
});

Ответ 3

Bootstrap 3.2 +:

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

Ответ 4

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 слайдов будет активным и не сможет получить активный индекс, поэтому сохраните код внутри функции времени ожидания

Ответ 5

Вы можете использовать функцию jquery index() для получения текущего индекса активного элемента внутри списка элементов. Таким образом, код выглядит следующим образом:

var currentItem = $("#carousel-1 .item.active" );
var currentIndex = $('#carousel-1 .item').index(currentItem) + 1;

Ответ 6

Единственный недостаток с приведенным ниже кодом будет заключаться в том, что он не отображается, пока вы не перейдете к следующему слайду (триггеры после каждого смены слайдов).

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>