2012-03-09 36 views
-3
var div = $("div"); 

one(),two(),three() 

function one() {div.css("background", "#f00").hide().fadeIn(1000)}; 
function two() {div.css("background", "#ff0").hide().fadeIn(1000)}; 
function three() {div.css("background", "#000").hide().fadeIn(1000)}; 

http://jsfiddle.net/aLPLn/任何最佳的方式來1,2,3步....功能?

任何插件等

$.stepz(one(),1); 
$.stepz(two(),2); 
$.stepz(three(),3); 

???

+0

你能否更好地解釋你的問題 - 這是沒有道理的。 – 2012-03-09 13:18:46

+1

我不完全理解你的問題,但你是否在尋找像'setInterval':http://jsfiddle.net/aLPLn/1/ – m90 2012-03-09 13:27:36

+1

也許這個幫助你? (或者我也許沒有得到它)​​http://api.jquery.com/toggle-event/ – 2012-03-09 13:28:00

回答

2

csshide都立即執行,所以你不需要等待任何東西。 fadeIn另一方面需要一些時間來完成,所以這就是你想等待的。您可以通過被調用時,在動畫完成回調函數:

var div = $("div"); 

function one() {div.css("background", "#f00").hide().fadeIn(1000, two)}; 
function two() {div.css("background", "#ff0").hide().fadeIn(1000, three)}; 
function three() {div.css("background", "#000").hide().fadeIn(1000)}; 

one(); 

http://jsfiddle.net/ckC9d/

1

所有的jQuery動畫方法供應一種叫當動畫完成時執行的「回調」 - 函數。它是在持續時間之後指定的。

function one() {div.css("background", "#f00").hide().fadeIn(1000, two)}; 
function two() {div.css("background", "#ff0").hide().fadeIn(1000, three)}; 
function three() {div.css("background", "#000").hide().fadeIn(1000, one)}; 

one(); //this will start a never-ending loop 

this doc例如:你可以像使用此鏈的動畫。

相關問題