2011-10-22 54 views
1

我希望這個函數延遲每個函數內部的每個動畫。那是一個接一個。目前他們都在一起。每個函數內部的JQuery隊列/延遲()

$('.bounceholder ul:eq(' + bounceholder + ') li').each(function(){ 
      $(this).delay(1000).animate({left: bounceoffset, top:-8, opacity:0.6, leaveTransforms:true}, {duration:600, queue:true}); 
      bounceoffset += 160; 
     }); 

回答

3

塊/功能傳遞給each可以接受計數器/索引作爲第一個參數:

$('.bounceholder ul:eq(' + bounceholder + ') li').each(function(i){ 
    delay = (i + 1) * 1000 
    $(this).delay(delay).animate({left: bounceoffset, top:-8, opacity:0.6, leaveTransforms:true}, {duration:600, queue:true}); 
    bounceoffset += 160; 
}); 
0
function DoAnimation(items, delay, bounceOffSet) { 
    $(items[0]).animate({left: bounceoffset, top:-8, opacity:0.6, leaveTransforms:true}, {duration:600, queue:true}) 
     .delay(delay) 
     .promise() 
     .done(function() { 
      items.splice(0, 1); 
      if (items.length > 0) 
      { 
       DoAnimation(items, delay, bounceOffSet + 160);  
      }    
    });  
} 

var items = $('.bounceholder ul:eq(' + bounceholder + ') li'); 

DoAnimation(items, 1000, 0);