Почему не правильно считает номера слайдов в карусели 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 { |
ligisayan,
потому что обычно в слайдере на несколько слайдов больше чем изначально было. |
ligisayan,
было 0,1,2,3,4,5,6 стало 5,6,0,1,2,3,4,5,6,0,1 |
да, спасибо рони - это потому, что зацикленность в карусели присутствует. а как это дело можно поправить, чтобы выводились правильные цифры?
|
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)
});
|
рони, спасибо большое! а есть ли возможно как-то универсализировать в общем случае для различного количества слайдов?
т.е.
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,
owl.on('changed.owl.carousel', function(e) {
$('.counter').text(++e.page.index + ' из ' + e.item.count)
});
|
Отлично, рони, супер! единственное, что во всплывающем окне или фрейме не сработает - ?
|
Цитата:
|
Цитата:
http://boats.likemedia.by/product-category/rasprodazha на товаре ТАЙМЕНЬ N-270РС ТР кликнуть на лупу, и пролистать товары вправо-влево, то в листалке товаров отображает порядковый номер 0, хотя тут все складно работает фидл |
ligisayan,
должно быть что-то типа такого
$.mad_woocommerce_mod.qvCarousel = function () {
var qvCarousel = $('.qv-carousel');
if (qvCarousel.length) {
qvCarousel.each(function () {
var owl = $(this).owlCarousel({
theme : "owl-qv-carousel-theme",
items:1,
//Autoplay
dots: false,
autoPlay : false,
loop: true,
slideSpeed : 1000,
autoHeight : false,
stopOnHover : true,
// Navigation
nav : true,
navText: ["",""],
rewindNav : true,
scrollPerPage : false,
//Pagination
pagination : false,
paginationNumbers: false,
onInitialized: function(e) {
$('.gallery-photoes').text('фото 1 из ' + this.items().length);
},
afterInit: function () {
$.mad_woocommerce_mod.product_preview.call(this);
}
});
owl.on('changed.owl.carousel', function(e) {
$('.gallery-photoes').text('фото ' + ++e.page.index + ' из ' + e.item.count);
console.log(e.page.index);
});
});
}
}
|
рони отличная попытка!, перенес код 1 в 1, но, к сожалению, все тоже самое...
|
ligisayan,
тогда так :)
$.mad_woocommerce_mod.qvCarousel = function () {
var qvCarousel = $('.qv-carousel');
if (qvCarousel.length) {
qvCarousel.each(function () {
var owl = $(this).owlCarousel({
theme : "owl-qv-carousel-theme",
items:1,
//Autoplay
dots: false,
autoPlay : false,
loop: true,
slideSpeed : 1000,
autoHeight : false,
stopOnHover : true,
// Navigation
nav : true,
navText: ["",""],
rewindNav : true,
scrollPerPage : false,
//Pagination
pagination : false,
paginationNumbers: false,
onInitialized: function(e) {
$('.gallery-photoes').text('фото 1 из ' + this.items().length);
},
afterInit: function () {
$.mad_woocommerce_mod.product_preview.call(this);
}
});
owl.on("changed.owl.carousel", function(a) {
var b = --a.item.index,
a = a.item.count;
$(".gallery-photoes").text('фото ' +(1 > b ? b + a : b > a ? b - a : b) + " из " + a)
});
});
}
}
|
оу, супер, рони, - вы гений! вот оказывается как циклы на js можно строить!
|
| Часовой пояс GMT +3, время: 22:05. |