2013-08-26 104 views
1

屬性如何使用jQuery的延遲改變HTML元素的CSS 屬性使用jQuery更改CSS與延遲

想象一下這種情況。我有divbg color藍色。我希望它淡出,當它淡入,我想bg color是紅色的。

我試過了。

$("div").fadeOut().delay(500).css("background-color","red").fadeIn(); 

雖然淡出格已經改變了顏色以紅色它消失之前,它不遵循鏈的事件序列。我怎樣才能使這一切發生在一條線上。

回答

4

你可以使用任何功能參與動畫隊列queue function

$("div") 
    .fadeOut() 
    .delay(500) 
    .queue(function() { 
     $(this).css("background-color","red").dequeue(); 
    }) 
    .fadeIn(); 

注意回調中的dequeue通話,這就是告訴jQuery來繼續在隊列中的下一件事。

+0

是的這就是我想要的。謝謝你的解釋 – MarsOne

+0

@MarsOne:不客氣!很高興幫助。 –

2
$("div").fadeOut(500, function() { 
    $("div").css("background-color","red").fadeIn() 
}); 
+0

'setTimeout'版本很好。這個版本不會延遲OP的代碼似乎想要的方式。 –

+1

+1爲一個很好的解決方案。但是,你拿出了我的延遲選項。 500ms似乎現在應用於fadout。並沒有延遲:( – MarsOne