2012-03-03 81 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