0

ここで何をしなければならないのか理解できないようです。私は簡単な画像のスライドショーを作成しようとしていますが、それを機能させる方法を見つけようとしています。forループを実行しておらず、理由がわかりません。これが私のコードのフィドルです:http://jsfiddle.net/xnEGt/

4

1 に答える 1

1

ここ: http: //jsfiddle.net/xnEGt/6/

何が悪かった:

  1. 画像は最初にCSSで非表示にする必要があり、最初の画像のみが表示されます
  2. forループを使用すると、すべての画像が1回だけ表示されます。.delay()はループに影響を与えないため、すべての反復が一度に行われることに注意してください
  3. これは、setTimeoutを使用した再帰的な実装を使用して解決できます。
  4. .get(0).get(1)セレクターも間違っていたので、代わりに使用しnth-child(i)てください。

    var slideCount = $('.slider div.slide').length;
    nextPic(0);
    
    function nextPic(i){
    
        var next = (i+1)%(slideCount+1);
    
        $('.slider div:nth-child('+i+')').fadeOut(100);
        $('.slider div:nth-child('+next+')').fadeIn(100);  
    
        setTimeout(function(){nextPic(next);},1000);
    }
    

    または、.get()セレクターを使用したよりコンパクトな実装:http: //jsfiddle.net/xnEGt/7/

于 2012-07-03T07:15:13.310 に答える