在研究以下示例的代码时,我想我几乎得到了所有内容
除了我不能在我的生活中看到tick()继续被调用。(意思是,当该函数继续运行时,因此继续更新图形。
tick没有被调用,也没有setinterval或类似的东西。我也不明白.each(" end",tick)的作用。有人可以建议吗?这是使用d3.js
tick();
function tick() {
// push a new data point onto the back
data.push(random());
// redraw the line, and slide it to the left
path
.attr("d", line)
.attr("transform", null)
.transition()
.duration(500)
.ease("linear")
.attr("transform", "translate(" + x(-1) + ",0)")
.each("end", tick);
// pop the old data point off the front
data.shift();
}
答案 0 :(得分:2)
你困惑的两件事是相互关联的。 #each用于处理转换事件。一个例子是转换结束后触发的end
事件。此代码说“在转换完成后(即触发end
事件时),请调用tick
。这将开始新的转换,同样的事情将重复,再次调用tick