Flexslider从随机幻灯片开始,然后继续按顺序加载

时间:2013-11-11 21:47:40

标签: jquery random flexslider

我正在使用Flexslider - http://www.woothemes.com/flexslider/我有一个滑块设置,其中有37张幻灯片(是的,我知道这很荒谬)。我需要一种方式,当页面加载时,它随机选择幻灯片1和幻灯片37之间的幻灯片,然后从那里继续顺序。

例如:

页面加载并随机选择幻灯片#17。幻灯片17之后出现的下一张幻灯片应该是18,然后是19,然后是20,依此类推。

下次加载页面时,它会随机选择另一张幻灯片。说这次它加载29.下一张幻灯片应该是30,然后是31,然后是32,等等......

到目前为止,我已经弄明白了,我知道我需要一种方法来首先让Flexslider计算当前滑块中幻灯片的数量。然后我需要取这个数字并在滑块中选择1到X#幻灯片之间的随机数。

我在Flexslider网站上找到了一些代码:

start: function(slider) {
  $('.total-slides').text(slider.count);
},

我理解的是给你幻灯片的数量,但从这里我不知道如何做一个随机数传递给

startAt: 0,

选项。

这是我当前的flexslider jquery

    jQuery( document ).ready( function( $ ) {
        $('.flexslider').flexslider({
            animation: "slide",
            useCSS: false,
            controlNav: false,
            slideshow: false,
            start: function(slider) {
                $('.total-slides').text(slider.count); // This gets the number of slides in the slider
              },
              startAt: 0, //This should be a random number
        });
    });

2 个答案:

答案 0 :(得分:3)

使用上面的代码设置变量有效,然后可以调用变量。

$(窗口).load(函数(){

var randomthis = Math.floor((Math.random()* $('.flexslider li').length )+1);

$('.flexslider').flexslider({
  animation: "slide",
  useCSS: false,
  controlNav: false,
  slideshow: false,
  startAt: randomthis

});

});

答案 1 :(得分:0)

我认为你不想在start属性中使用startAt。试试这个:

$('.flexslider').flexslider({
    ...
    startAt: function() {
        var slideCount = $('.total-slides').text(slider.count);
        var mySlide = Math.floor((Math.random()*slideCount)+1);
        return mySlide;
    }
});

我的部分原因是API docsthis randomize example