アニメーションに問題があります。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;
});