【发布时间】:2011-09-16 20:24:41
【问题描述】:
我有一个 div,我想一次将所有子元素淡出,但要淡入一个新元素,但前提是所有子元素都完成淡出。使用下面我当前的代码,#Message div 在第一个子元素之后开始淡入,实际上放置在最后一个子元素之后。一旦最后一个孩子完全消失,#Message div 就会“跳”到适当的位置。我想避免这种“跳跃”。
$('#DIV').children().fadeOut("slow", function() {
$('#Message').fadeIn("slow");
});
如何确保在 #DIV 的所有子元素上的 fadeOut() 完成之前,fadeIn() 动画不会开始?
编辑:我应该注意我的#Message div 位于#DIV 的内部。
【问题讨论】:
-
根据文档,你有什么权利。 api.jquery.com/fadeOut
-
似乎工作正常:jsfiddle.net/j8Pst
-
你想要的效果可以用你的代码正常工作,但是如果你的fadeOut动画时间不同,你需要使用延迟对象(详见帖子)。请注意,我帖子中的代码也可以用于任何等待机制(例如 ajax 调用)
-
我想你想要延期。在这里阅读:erichynds.com/jquery/using-deferreds-in-jquery
标签: jquery