【问题标题】:Flexslider random order after animationFlexslider 动画后的随机顺序
【发布时间】:2014-10-30 21:55:41
【问题描述】:

我正在尝试随机化 flexslider 上的幻灯片顺序。 random 选项仅允许您随机化加载顺序。我在这个帮助下拼凑了下面的代码: Flexslider Start at a random slide and then continue loading sequentially

知道我做错了什么吗?

$(window).load(function() {
  var randomthis = Math.floor((Math.random()* $('.flexslider li').length )+1);
  $('.flexslider').flexslider({
    after: function(slider) {
    startAt: randomthis
    },
  });
});

【问题讨论】:

    标签: jquery


    【解决方案1】:

    FlexSlider 支持随机化幻灯片。 您可以使用以下代码

    $(window).load(function() {
        $('.flexslider').flexslider({
            randomize: true
        });
    });
    

    根据您的要求,您可以使用以下代码。

    $(window).load(function() {
        var randomthis = Math.floor((Math.random()* $('.flexslider li').length ));
        $('.flexslider').flexslider({
            after: function(slider) {
                startAt: randomthis
            },
        });
    
        // **CAUTION** the below code will remove ALL the setTimeouts
        var highestTimeoutId = setTimeout(";");
        for (var i = 0 ; i < highestTimeoutId ; i++) {
            clearTimeout(i); 
        }
    
        // This code will add a new setTimeout function for randomizing the
        a = function(){ 
            var newrandval = Math.floor((Math.random()* $('.flexslider li').length ));
            while(randomthis == newrandval){
                newrandval = Math.floor((Math.random()* $('.flexslider li').length ))
            }
            randomthis = newrandval;
            $('.flexslider').flexslider(randomthis); setTimeout(a,3000)
        }
        a();
    });
    

    【讨论】:

    • 他们这样做,但只是在加载之前。假设我有幻灯片 1、2、3、4。使用您的代码,如果我点击刷新,它们现在将是 4、2、1、3 并保持该顺序。我正在寻找的是加载后的随机顺序。
    【解决方案2】:

    这是您的代码的工作模型,使用 startAt 而不是 after 函数; http://jsbin.com/kunizo/1/edit?js,output

    $(window).load(function() {
      // create function that returns random number
      var random = function(num){
        var numRandom = Math.floor((Math.random()* num ));
        return numRandom;
      };
      // create variable with slides length;
      var slidesLength = $('.flexslider li').length
      // init flexslider and start at random number
      $('.flexslider').flexslider({
        startAt: random(slidesLength)
      });
    });
    

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多