我的动画有问题。我调用 tick 函数来为我的节点设置动画,并且现在希望在单击节点后将其设置为动画到特定位置。那也有效,但没有动画,节点只是跳到没有动画的位置。
var force = d3.layout.force()
.size([width, height])
.nodes([]) // coming from a JSON file
.linkDistance([]) // coming from a JSON file
.charge(-750)
.gravity(0)
.on("tick", tick);
……
function tick() {
link.attr("x1", function(d) { return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
node.attr("transform", function(d) {
return "translate(" + (d.x) + "," + (d.y) + ")";
});
}
动画调用:
d3.select(tmp_this.parentNode)
.transition()
.attr('transform', function(e){
var position = "translate(" + (500) + "," + (500) + ")";
return position;
});