2012-03-03 79 views
0

我有一个循环的函数。我现在还在围绕着这个如何工作,我希望你能提供帮助。如何创建这个简单的循环功能?

基本上我有以下功能

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 ms的空间内,它返回到顶部并在-150像素处离开屏幕。

如果我是这样做:

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(); 

...但随后我的功能不具有自定义变量的选择。感谢任何指针。

回答

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将保持自称,所以你的调用堆栈会无限增长。如果您的动画预计会多次运行(如:无人值守数天),则这可能会成为问题。我不确定大多数浏览器的截止点在哪里。

+0

没有真正阅读OP,我想他想要一个自定义缓动功能。 – Hello71 2012-03-03 23:13:33

+0

这就是我要找的 - 谢谢Frits。我不确定如何格式化它!再次感谢。 – willdanceforfun 2012-03-03 23:14:37