21.04.2016, 13:17
|
Кандидат Javascript-наук
|
|
Регистрация: 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;
} |
ссылка на фидл
|
|
21.04.2016, 13:38
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
ligisayan,
потому что обычно в слайдере на несколько слайдов больше чем изначально было.
|
|
21.04.2016, 13:41
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
ligisayan,
было 0,1,2,3,4,5,6 стало 5,6,0,1,2,3,4,5,6,0,1
|
|
21.04.2016, 14:57
|
Кандидат Javascript-наук
|
|
Регистрация: 19.06.2015
Сообщений: 114
|
|
да, спасибо рони - это потому, что зацикленность в карусели присутствует. а как это дело можно поправить, чтобы выводились правильные цифры?
|
|
21.04.2016, 15:18
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
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)
});
|
|
21.04.2016, 15:29
|
Кандидат Javascript-наук
|
|
Регистрация: 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.
Причина: добавил важный код
|
|
21.04.2016, 15:48
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
ligisayan,
owl.on('changed.owl.carousel', function(e) {
$('.counter').text(++e.page.index + ' из ' + e.item.count)
});
|
|
21.04.2016, 16:48
|
Кандидат Javascript-наук
|
|
Регистрация: 19.06.2015
Сообщений: 114
|
|
Отлично, рони, супер! единственное, что во всплывающем окне или фрейме не сработает - ?
|
|
21.04.2016, 16:51
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
Сообщение от ligisayan
|
что во всплывающем окне или фрейме не сработает
|
не понимаю о чём вы
|
|
21.04.2016, 17:44
|
Кандидат Javascript-наук
|
|
Регистрация: 19.06.2015
Сообщений: 114
|
|
Сообщение от рони
|
не понимаю о чём вы
|
если вот тут
http://boats.likemedia.by/product-category/rasprodazha
на товаре ТАЙМЕНЬ N-270РС ТР кликнуть на лупу, и пролистать товары вправо-влево, то в листалке товаров отображает порядковый номер 0, хотя тут все складно работает
фидл
|
|
|
|