我试图在所有其他动画完成后显示div。我现在的代码将同时完成。
$(document).ready(function(){
$('#header').hide();
$('.contactl').click(function(){$('#content').stop().scrollTo('#contact',1250,{easing:'easeinout'});
});
$('#menu').click(function() {$('#header').fadeIn(4000)});
因此菜单必须在联系动画后淡入。它们处于单独的功能中,否则我必须在所有菜单项功能中包含代码的菜单部分。
可以这样做吗?如果是这样,怎么样?
答案 0 :(得分:3)
您可以在所有jQuery动画函数中指定回调参数。您的问题的解决方案是将动画之后要执行的代码放在函数中,并将该函数作为回调传递给最终动画。</ p>
编辑:示例如下:
function alertAfterAnimation() {
alert("Animation is finished!");
}
// Hide myElement, then pop up a message when it's gone
$.hide('#myElement', 'slow', alertAfterAnimation);
答案 1 :(得分:0)
我确定其他答案都是正确的,但是想指出自jQuery 1.5以来发布的新功能:
http://api.jquery.com/deferred.promise/
这允许您以更明确的方式链接事件。可能性是无穷无尽的,但将其应用于动画绝对是可能的。
答案 2 :(得分:0)
类似于Milimetric,另一个有价值的特征是Queue:
此页面上的示例应与您正在寻找的内容非常接近。
您可能采取的一般方法是在动画上完成一个公共回调函数,当动画队列为零时,您可以继续做任何您喜欢的事情。
答案 3 :(得分:-4)
经过广泛的谷歌搜索,我找到了一个简单的解决方案。 添加... .delay(800) 解决了这个问题。