2014-10-30 18 views
2

flexslider에서 슬라이드 순서를 임의 화하려고합니다. 무작위 옵션을 사용하면로드시 주문을 무작위로 선택할 수 있습니다. 아래 코드를 함께 사용하면 다음과 같은 결과를 얻을 수 있습니다. Flexslider Start at a random slide and then continue loading sequentially애니메이션 후 Flexslider 무작위 순서

내가 뭘 잘못하고 있니?

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

답변

2

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(); 
}); 
+0

그들은하지만로드하기 전에 않습니다. 슬라이드 1, 2, 3, 4가 있다고 가정 해 보겠습니다. 코드를 사용하여 새로 고침을하면 4,2,1,3이되고 순서대로 유지됩니다. 내가 뭘 찾고로드 무작위 순서입니다. – DerickB

+0

업데이트 된 버전을 사용해보세요. –

0

여기에 코드의 작업 모형이 있습니다. 함수 대신 startAt를 사용하십시오. 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) 
    }); 
}); 
관련 문제