Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Почему не правильно считает номера слайдов в карусели owl carousel 2? (https://javascript.ru/forum/jquery/62633-pochemu-ne-pravilno-schitaet-nomera-slajjdov-v-karuseli-owl-carousel-2-a.html)

ligisayan 21.04.2016 13:17

Почему не правильно считает номера слайдов в карусели owl carousel 2?
 
Приветствую! Есть Owl Carousel 2 в которой хочу получать номер текущего и количество слайдов в целом, но проблема в том, что после перехода с от последнего слайда к первому не происходит обнуление в подсчете и отображает номера 8, а затем 2,3 и т.д. Почему так?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://owlcarousel.owlgraphic.com/assets/owlcarousel/owl.carousel.js"></script>
<link rel="stylesheet" href="http://owlcarousel.owlgraphic.com/assets/owlcarousel/assets/owl.carousel.min.css">
<link rel="stylesheet" href="http://owlcarousel.owlgraphic.com/assets/owlcarousel/assets/owl.theme.default.min.css">
<div class="owl-carousel">
  <div class="item">
    <h4></h4>
  </div>
  <div class="item">
    <h4></h4>
  </div>
  <div class="item">
    <h4></h4>
  </div>
  <div class="item">
    <h4></h4>
  </div>
  <div class="item">
    <h4></h4>
  </div>
  <div class="item">
    <h4></h4>
  </div>
  <div class="item">
    <h4></h4>
  </div>
</div>
<p class='counter'>№1 из N</p>

var owl = $('.owl-carousel');
owl.owlCarousel({
  loop: true,
  items: 1,
  margin: 10,
  nav: true,
  onInitialized: function(e) {
    $('.counter').text('1 из ' + this.items().length)
    console.log();
  }
});
owl.on('changed.owl.carousel', function(e) {
  $('.counter').text(e.item.index - 1 + ' из ' + e.item.count)
});

Код:

.owl-carousel .item {
  height: 10rem;
  background: #4DC7A0;
  padding: 1rem;
}

ссылка на фидл

рони 21.04.2016 13:38

ligisayan,
потому что обычно в слайдере на несколько слайдов больше чем изначально было.

рони 21.04.2016 13:41

ligisayan,
было 0,1,2,3,4,5,6 стало 5,6,0,1,2,3,4,5,6,0,1

ligisayan 21.04.2016 14:57

да, спасибо рони - это потому, что зацикленность в карусели присутствует. а как это дело можно поправить, чтобы выводились правильные цифры?

рони 21.04.2016 15:18

ligisayan,
owl.on('changed.owl.carousel', function(e) {
  $('.counter').text([6,7,1,2,3,4,5,6,7,1,2][e.item.index]  + ' из ' + e.item.count)
});

ligisayan 21.04.2016 15:29

рони, спасибо большое! а есть ли возможно как-то универсализировать в общем случае для различного количества слайдов?
т.е.
owl.on('changed.owl.carousel', function(e) {
  $('.counter').text([(e.item.count-1),e.item.count, последовательность от 1 до последнего слайда,1,2][e.item.index]  + ' из ' + e.item.count)
});

осталось понять как получить эту последовательность последовательность от 1 до последнего слайда

рони 21.04.2016 15:48

ligisayan,
owl.on('changed.owl.carousel', function(e) {
  $('.counter').text(++e.page.index  + ' из ' + e.item.count)
});

ligisayan 21.04.2016 16:48

Отлично, рони, супер! единственное, что во всплывающем окне или фрейме не сработает - ?

рони 21.04.2016 16:51

Цитата:

Сообщение от ligisayan
что во всплывающем окне или фрейме не сработает

не понимаю о чём вы

ligisayan 21.04.2016 17:44

Цитата:

Сообщение от рони (Сообщение 414637)
не понимаю о чём вы

если вот тут
http://boats.likemedia.by/product-category/rasprodazha
на товаре ТАЙМЕНЬ N-270РС ТР кликнуть на лупу, и пролистать товары вправо-влево, то в листалке товаров отображает порядковый номер 0, хотя тут все складно работает
фидл


Часовой пояс GMT +3, время: 11:16.