Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.04.2016, 13:17
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

Почему не правильно считает номера слайдов в карусели 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;
}
ссылка на фидл
Ответить с цитированием
  #2 (permalink)  
Старый 21.04.2016, 13:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,872

ligisayan,
потому что обычно в слайдере на несколько слайдов больше чем изначально было.
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2016, 13:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,872

ligisayan,
было 0,1,2,3,4,5,6 стало 5,6,0,1,2,3,4,5,6,0,1
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2016, 14:57
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

да, спасибо рони - это потому, что зацикленность в карусели присутствует. а как это дело можно поправить, чтобы выводились правильные цифры?
Ответить с цитированием
  #5 (permalink)  
Старый 21.04.2016, 15:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,872

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)
});
Ответить с цитированием
  #6 (permalink)  
Старый 21.04.2016, 15:29
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

рони, спасибо большое! а есть ли возможно как-то универсализировать в общем случае для различного количества слайдов?
т.е.
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 до последнего слайда

Последний раз редактировалось ligisayan, 21.04.2016 в 15:47. Причина: добавил важный код
Ответить с цитированием
  #7 (permalink)  
Старый 21.04.2016, 15:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,872

ligisayan,
owl.on('changed.owl.carousel', function(e) {
  $('.counter').text(++e.page.index  + ' из ' + e.item.count)
});
Ответить с цитированием
  #8 (permalink)  
Старый 21.04.2016, 16:48
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

Отлично, рони, супер! единственное, что во всплывающем окне или фрейме не сработает - ?
Ответить с цитированием
  #9 (permalink)  
Старый 21.04.2016, 16:51
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 25,872

Сообщение от ligisayan
что во всплывающем окне или фрейме не сработает
не понимаю о чём вы
Ответить с цитированием
  #10 (permalink)  
Старый 21.04.2016, 17:44
Кандидат Javascript-наук
Отправить личное сообщение для ligisayan Посмотреть профиль Найти все сообщения от ligisayan
 
Регистрация: 19.06.2015
Сообщений: 114

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Owl carousel 2 не работает с табами - как поправить? ligisayan jQuery 7 08.05.2016 13:41