我有两个div和两个单独的链接,触发div的slideDown和slideUp。完成一个动画,然后启动另一个动画
当其中一个div滑落并点击另一个时,我隐藏第一个div(slidingUp),然后打开另一个div(slidingDown),但此时就像一个div滑落,另一方,也是在同一时间,正在向上滑动。
有没有一种方法可以告诉jQuery等待完成向下滑动一个div,然后才开始向上滑动另一个div?
我有两个div和两个单独的链接,触发div的slideDown和slideUp。完成一个动画,然后启动另一个动画
当其中一个div滑落并点击另一个时,我隐藏第一个div(slidingUp),然后打开另一个div(slidingDown),但此时就像一个div滑落,另一方,也是在同一时间,正在向上滑动。
有没有一种方法可以告诉jQuery等待完成向下滑动一个div,然后才开始向上滑动另一个div?
$('#Div1').slideDown('fast', function(){
$('#Div2').slideUp('fast');
});
编辑:你检查出手风琴插件(如果那是你想要做什么)?
大多数jQuery的函数都有一个回调参数,你可以传递一个函数。
如何做到这一点? – 2010-03-07 20:48:17
$("#thisDiv").slideUp("slow", function() {
// This function is called when the slideUp is done animating
$(this).doNextThing();
});
使用函数的第二个参数:callback。例如,
$(this).slideDown(speed, function(){ $(this).slideUp(); });
这将滑动同一个div然后备份,而不是真正的家伙问,呃? – 2009-01-20 16:07:58
您可以使用一个回调火下一个效果时,第一个完成:
$("#element1").slideUp(
"slow",
function(){
$("#element2").slideDown("slow");
}
);
在这个例子中,效果基本show动画完成后定义为第二个参数的效果基本show方法调用该函数。
你应该IT连锁这样
function animationStep1()
{
$('#yourDiv1').slideUp('normal', animationStep2);
}
function animationStep2()
{
$('#yourDiv2').slideDown('normal', animationStep3);
}
// etc
当然你也可以用递归函数香料这件事,阵列控股动画队列等,可根据您的需求。
请将*请*放在`animationStep2`中,而不是`function(){animationStep2(); }`。为什么要让一个新的函数调用另一个函数? – Aistina 2010-03-28 12:29:15
这样的例子可以在JQuery for Beginners - Day 2
可以看到有这些教程的15天,他们是一个很好的资源。请享用!
有点清洁例子,与动画之间的延迟:
$("#elem").fadeIn(1000).delay(2000).fadeOut(1000);
可能是有用的,看看你有什么了。 – 2009-01-20 16:05:28