Почему не правильно считает номера слайдов в карусели 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, время: 15:44. |