如何在动画之后访问和存储 D3 对象的画布位置 (cx/cy),以便我可以将其用作下一个动画的起点?
我有以下输入转换:
var enterTransition = enter.transition()
.duration(duration)
.delay(function(d, i) { return i * delay; })
.attr("cx", function(d, i) { return Math.random()*width; })
.attr("cy", function(d, i) { return Math.random()*height; });
结果我真的不知道我的节点在哪里结束。
一个节点可能有子节点和一个“点击”事件作为结果。如果用户单击节点,我希望新一批节点从父节点开始并从那里随机化。我像这样定义我的节点(“气泡”)......
var bubbles = vis.insert("svg:g")
.attr("class", "enter")
.selectAll("g")
.data(d.children)
.enter().append("svg:circle")
.attr("stroke", "black")
.attr("fill", function(d, i) { return colors(i); })
.attr("cx", function(d, i) { return d.cx0; }) // for illustration purposes
.attr("cy", function(d, i) { return d.cy0; }) // for illustration purposes
.attr("r", function(d, i) { return rScaled(d.duration); })
.style("cursor", function(d) { return !d.children ? null : "pointer"; })
.on("click", down);
我的d.cx0
和d.cy0
代表父节点的cx/cy。
如何在动画后抓取这些信息并保存以供参考?