在下面的链接中,我试图找出代码的含义。https://bl.ocks.org/mbostock/10343037
这是我不理解的特定代码,它看起来像嵌套函数使循环工作。我想知道变量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);
}();
你可以从这里阅读更多关于渐变的内容,以清楚地了解每个选定元素的返回函数。
渐变函数API
根据下面的链接,变量t
是0到1之间的归一化时间。
关于最后一条语句.each("end", loop);
,它创建了一个无限循环,因此动画每次都会重新启动。