как получить общее количество слайдов в flexslider
Я использую flexslider http://www.woothemes.com/flexslider/, теперь я хочу получить общее число слайдов и число Сильд.
number of the slide/total number of the slides
Например, если у меня есть 5 слайдов, и я сейчас на 2-м слайде, так что это будет выход ниже слайдов.
2/5
Если я нажму кнопку "next nav", она станет
3/5
Если "prev nav";
2/5
Это возможно в flexslider? если да, то как это сделать?
6 ответов:
Базируемся на демо здесь
Я замечаю, что демо и другие создадут код, как показано ниже:
<ol class="flex-control-nav flex-control-paging"> <li><a class="">1</a> </li> <li><a class="flex-active">2</a> </li> <li><a>3</a> </li> <li><a>4</a> </li> </ol>Таким образом, в соответствии с этим, вы можете получить то, что вы хотите, используя код:
var index = $('li:has(.flex-active)').index('.flex-control-nav li')+1; var total = $('.flex-control-nav li').length;
Вы можете найти ответ здесь: http://www.woothemes.com/flexslider .
<script type="text/javascript" charset="utf-8"> $(window).load(function() { $('.flexslider').flexslider({ animation: "slide", controlsContainer: ".flex-container", start: function(slider) { $('.total-slides').text(slider.count); }, after: function(slider) { $('.current-slide').text(slider.currentSlide); } }); }); </script>Если вы хотите, чтобы даже первый слайд был засчитан, вы можете добавить в функцию start:
$('.current-slide').text(slider.currentSlide);Если вы хотите, чтобы текущий слайд начинался с числа 1 (а не 0), вы можете сделать:
$('.current-slide').text(slider.currentSlide+1);
Согласно этому веб-сайту, вы можете сделать это с помощью callback API. http://www.woothemes.com/flexslider/. Напишите метод Start и After callback при создании экземпляра flexslider и передайте его в слайдер. Затем используйте слайдер.граф и слайдер.currentSlide, чтобы получить то, что вам нужно. В моем коде ниже $slider_wrap, $current_slide и $total_slides - это просто переменные, назначенные объектам jQuery, где я хотел отобразить счетчик слайдеров. Я сделал слайдер.currentSlide+1, потому что первый слайд на самом деле 0 в массиве.
$slider_wrap.flexslider({ start: function(slider){ $current_slide.html(slider.currentSlide+1); $total_slides.html(slider.count); }, after: function(slider){ $current_slide.html(slider.currentSlide+1); $total_slides.html(slider.count); } });
На основе разметки на этой странице, которую вы связываете, вы можете получить количество слайдов, таких как:
$(".slides").find("li").lengthИ вы можете найти номер активного слайда с помощью:
$(".slides").find("li.flex-active-slide").index() + 1;И если вы хотите что-то изменить при изменении слайдера, вы можете добавить что-то к обратному вызову
after.$(".mybox").flexslider({ after: function() { // update the count } });
В настоящее время я делаю точно то же самое для создания индекса слайдов (...хотя я использую PHP для генерации целого числа для количества изображений)
Попробуйте создать элемент для индекса слайда...
<p class="slideIndex"></p>...и используйте функцию после:...
$('.flexslider').flexslider({ after: function(slider) { slider.find('.slideIndex').html(slider.currentSlide + 1); } });
Comments