2011-12-24 17 views
0

下のコードでは、ページがフェードインしてから、左のリスト項目が消えてしまい、右の各サムネイルが消えてしまいます。しかし、私が.delay()を使用しているため、サムネイルの一部またはすべての読み込みをスキップしてしまいます。私が親指の実行を止めるのに使うことができる.delay()以外のものがありますか?遅延の不思議な挙動?

//Showcase 
    $('#showcase').animate({'opacity' : 0}, 0); 
    fadeInDivs(['#showcase']); 
    function fadeInDivs(els) { 
     e = els.pop(); 
     $(e). delay(750).animate({'opacity' : 1}, 1000, function(){ 
      if (els.length) fadeInDivs(els); 
     }); 
    }; 

    $('#showcase').queue(function(){ 

     //fade in each filter 
     $('#filters li').each(function(i, item) { 
      setTimeout(function() { $(item).animate({'opacity' : 1}, 1000); }, 50 * i); 
     }); 

     //fade in each thumbnail 
     $('.thumb').delay(1000).each(function(i, item) { 
      setTimeout(function() { $(item).animate({'opacity' : 1}, 1000); }, 500 * i); 
     }); 
    }); 

答えて

1

お試しくださいfiddle私はこれをあなたが探していると思います。そうでない場合は教えてください。ここでjQueryのコードは次のとおりです。

$('#showcase').queue(function() { 
    var i = 0; 
    var length = $('#filters li').length; 
    //fade in each filter 
    $('#filters li').each(function(i) { 

     //alert(i); 
     $(this).delay(750*i).animate({ 
      'opacity': 1 
     }, 1000, function() { 
      if (i == length) { 
       //fade in each thumbnail 
       $('.thumb').each(function(i) { 
        $(this).delay(750 * i).animate({ 
         'opacity': 1 
        }, 1000); 
       }); 
      } 
     }); 
     i++; 
    }); 

}); 
+0

それは私が.thumbsがフェードインしたい行われたときで、その後フェードインする#filters李を取得しようとしているイム.. HERESにフィドルhttp://jsfiddle.net/UsXWn /あなたは、フィルタが完了する前に、写真がフェードインするのを見ています。 –

+0

@JoeBobby - 私はフィドルを更新しました。それがあなたの好きなものであるかどうかを見てください。 – john

+0

.queue()の部分を変更するだけでそれを行う方法はありますか?アニメーションからフェードインに変更された理由はありますか? –

関連する問題