2

我的动画有问题。我调用 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;
  });
4

0 回答 0