2012-04-26 51 views
0

我想時間一個簡單的jQuery動畫,以便它在一組HTML元素上一個接一個地觸發,並在前進到下一組元素之前延遲。使用jQuery each()還沒有得到很多,因爲each()會立即運行「item」變量。有沒有辦法來解決這個問題,以便在進入下一個「item」變量前延遲時間?試圖給每個時間jQuery的時間()

$(document).ready(function() { 
    var slideShow = $(".intro-inner"); 
     if (slideShow) { 
     var item = slideShow.find(".item"); 
     var headLine = item.find("h1"); 
     var para = item.find("p"); 
     item.each(function() { 
      if (headLine && para) { 
       headLine.css({"opacity": "0", "left" : "-1.25em" }); 
       para.css({"opacity": "0", "left" : "-12.500em" }); 
       setTimeout(function() { 
        headLine.animate({"opacity": "1", "left" : "0"}, 4000); 
        para.animate({"opacity": "1", "left" : "0"}, 4000); 
       }, 1000); 
      } 
     }); 
    } 
}); 

任何幫助將不勝感激。

+0

你'setTimeout'丟失:

例如,通過你傳遞到setTimeout動畫每個人面前的一個後一秒鐘的秒數乘以(從零開始)指數時間.. – 2012-04-26 18:18:21

回答

1
setInterval(callYouFunction(), time interval in miliseconds) 
+0

您需要設置一個全局變量,以存儲每個元素將被動畫的引用。 – Blazemonger 2012-04-26 18:33:33

0

.each()將通過the index and the element其回調函數。你可以使用這個。

item.each(function (i,el) { 
     if (headLine && para) { 
      headLine.css({"opacity": "0", "left" : "-1.25em" }); 
      para.css({"opacity": "0", "left" : "-12.500em" }); 
      setTimeout(function() { 
       headLine.animate({"opacity": "1", "left" : "0"}, 4000); 
       para.animate({"opacity": "1", "left" : "0"}, 4000); 
      }, i*1000); 
     } 
    });