2016-06-30 104 views
-1

在下面的鏈接中,我試圖找出代碼的含義。 https://bl.ocks.org/mbostock/10343037D3JS Javascript和嵌套函數

這是我不明白的特殊代碼,它看起來像一個循環工作的嵌套函數。 我想知道什麼是變量t,通過在控制檯中檢查它是介於0和1之間,但我找不到它來自哪裏。 我還沒有得到的.each("end", loop);

!function loop() { 
circle.transition() 
     .ease("linear") 
     .duration(5000) 
     .tween("transform", function() { 
     return function(t) { 
      circle.attr("cx", x(t)).attr("cy", y(ease(t))); 
      timeReference.attr("x1", x(t)).attr("x2", x(t)).attr("y2", y(ease(t))); 
      easeReference.attr("x2", x(t)).attr("y1", y(ease(t))).attr("y2", y(ease(t))); 
     }; 
     }) 
     .each("end", loop); 
}(); 
+0

在問你應該至少做一點你自己的研究之前。您是否知道涵蓋D3所有部分的詳細[文檔](https://github.com/d3/d3/wiki/API-Reference)?關於['transition.tween()'](https://github.com/d3/d3-3.x-api-reference/blob/master/Transitions.md#tween)的部分包含了你的第一個答案關於't'的問題。同樣,關於['transition.each()'](https://github.com/d3/d3-3.x-api-reference/blob/master/Transitions.md#each)的部分將回答你的第二個問題。 – altocumulus

+0

感謝您的鏈接,起初我不知道答案在d3文檔中。不止D3.js,我認爲這是Javascript相關的,這就是我在這裏問的原因。 – oro777

回答

0

含義根據下面的鏈接,變量t是nomalized關於時間的最後一條語句.each("end", loop);

0和1之間

https://bost.ocks.org/mike/transition/

,它會產生無限循環,因此每次都會重新開始動畫。

1

您可以從這裏瞭解更多關於補間的信息,以清楚地瞭解每個選定元素的返回功能。

Tween function API