2013-08-26 76 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