我有一个循环自身的功能。我仍然围绕着它的运作方式,我希望你能提供帮助。
基本上我有以下功能
function parachute_drop(animation_duration) {
$('#parachute_wrap_2')
.animate({top: "750px"},animation_duration)
.animate(
{top:"-150px"},
{duration: 0, complete: parachute_drop("'+animation_duration+'")}
);
}
parachute_drop(90000);
在我的脑海中,这应该循环自己,并且在函数内部发生'animation_duration',它应该以我在函数调用中放入的任何数字结束。
这个想法是,超过90秒,降落伞降落750px。然后在0毫秒的空间中,它返回到顶部并在-150px处离开屏幕。
如果我这样做:
parachute_drop(1000);
然后这个循环每1秒发生一次。
我对这里的功能有什么不了解 - 我是否无法将“完整”功能放入这样的变量中?我知道,如果我完全从函数中取出'animation_duration'部分,只需在其中加入一个固定的持续时间,它就能正常工作。
例如以下作品:
function parachute_drop() {
$('#parachute_wrap_2')
.animate({top: "750px"},9000)
.animate(
{top:"-150px"},
{duration: 0, complete: parachute_drop}
);
}
parachute_drop();
...但是我的函数没有自定义变量选项。谢谢你的任何指示。
答案 0 :(得分:4)
function parachute_drop(animation_duration) {
$('#parachute_wrap_2')
.animate({ top: "750px" }, animation_duration)
.animate({
top:"-150px"
}, {
duration: 0,
complete: function () {
parachute_drop(animation_duration);
}
});
}
parachute_drop(90000);
这里的问题是parachute_drop
将继续调用自身,因此您的调用堆将无限增长。如果您的动画预计会运行多次,则可能会出现问题(如:几天无人看管。我不确定大多数浏览器的截止点在哪里。