Как добавить поддержку нескольких строк в FlexSlider?

Я использую FlexSlider на своем сайте Wordpress. Все работает хорошо. Но я хочу, чтобы моя галерея была видна в 2 ряда. Я искал это, но не нашел решение.

Это мой flexslider.js: http://pastebin.com/3YgKEFB4

3 ответа

Попробуйте этот подход. Я пытался, и это сработало для меня:)

function make2Rows(iWidth) {
    var iHeight = parseFloat($('.flexslider .slides > li').height());
    $('.alliance-list .slides > li').css('width', iWidth+'px');
    $('.alliance-list .slides > li:nth-child(even)').css('margin', iHeight+'px 0px 0px -'+iWidth+'px');
}

$(window).load(function() {
    var itemCnt = 5; // this will be the number of columns per row
    var iWidth = parseFloat($('.flexslider').width() / itemCnt);
    $('.flexslider').flexslider({
        animation: "slide",
        slideshowSpeed: 1000,
        animationSpeed: 300,
        animationLoop: false,
        directionNav: false,
        slideshow: false,
        touch: true,
        itemWidth: iWidth,
        minItems: itemCnt,
        maxItems: itemCnt,
        start: make2Rows(iWidth)
    });
});

Работает на 2 ряда. Он определяет функцию для добавления полей к четным слайдам, чтобы они стали под нечетными. Источник этого решения здесь:

http://paulgonzaga.blogspot.com.es/2014/02/how-to-create-multiple-row-carousel-on.html?m=1

flexslider не поддерживает несколько строк. Вам придется либо написать код самостоятельно, либо попросить кого-то добавить функциональность для вас.

Создайте два отдельных ползунка, и там, где вы инициализируете их в Javascript, используйте параметры before и directionNav, чтобы они работали вместе, как если бы они были одним двухстрочным слайдером. Вот пример:

   $('#slider-row-1').flexslider({
    animation: "slide",
    animationLoop: true,
    before: function(slider){
        $('#slider-row-2').flexslider(slider.animatingTo);
    }, // animates second row in sync with first row
    controlNav: false,
    directionNav: true, // shows navigation arrows
    itemWidth: 210,
    itemMargin: 5,
    minItems: 4,
    maxItems: 4,
    slideshow: false
  });

  $('#slider-row-2').flexslider({
    animation: "slide",
    animationLoop: true,
    controlNav: false,
    directionNav: false, // hides navigation arrows
    itemWidth: 210,
    itemMargin: 5,
    minItems: 4,
    maxItems: 4,
    slideshow: false
  });

Затем обновите стили, чтобы они выглядели как один слайдер:

#slider-row-1 .flex-direction-nav a {
    top: 100%;
}
Другие вопросы по тегам