2016-06-30 65 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