0

ループで 3 つのスライドをフェードイン/フェードアウトするスライドショーがあります。開始するスライドの 1 つをランダムに選択する方法はありますか?

現在のコード:

function startSlideshow(){
    $("#slide1").fadeIn(1000).delay(3500).fadeOut(1000); //5500
    $("#slide2").delay(5500).fadeIn(1000).delay(3500).fadeOut(1000); //11000
    $("#slide3").delay(11000).fadeIn(1000).delay(3500).fadeOut(1000, startSlideshow); //55000
}

このサイトと皆さんは、これまで素晴らしいリソースでした。ありがとうございました!

4

1 に答える 1

0
function startSlideshow(){
    var slides = ["#slide1","#slide2","#slide3"];
    var rand = Math.floor(Math.random()*slides.length);
    var slideSeq = slides.splice(rand).concat(slides);
    $(slideSeq[0]).fadeIn(1000).delay(3500).fadeOut(1000); //5500
    $(slideSeq[1]).delay(5500).fadeIn(1000).delay(3500).fadeOut(1000); //11000
    $(slideSeq[2]).delay(11000).fadeIn(1000).delay(3500).fadeOut(1000, startSlideshow); //55000
}

注:回答を作成しているときに、naabがソリューションに非常によく似たものを投稿したことがわかりますが、ソリューションはスライドシーケンスを保持しているため、とにかく投稿します。

編集:コードをテストするためにフィドルをまとめました。ランダムに選択されたものから始めて、3つのdivを順番にフェードします。

http://jsfiddle.net/QmDt5/2/

于 2012-06-16T02:57:17.797 に答える