2015-02-23 71 views
0

我想在d3中制作一个简单的动画(我是新手)。我做了一个词云演示文稿,当页面打开时,我会喜欢它“飞入”(从左到右,然后居中)的小动作。d3动画wordcloud flyin

var text = d3.select("body").append("svg") 
      .attr("width", 1200) 
      .attr("height", 800) 
      .append("g") 
      .attr("transform", "translate(550,300)") 
      .selectAll("text") 
      .data(words) 
      .enter().append("text") 
      .style("font-size", function(d) { return d.size + "px"; }) 
      .style("font-family", "Impact") 
      .style("fill", function(d, i) { return fill(i); }) 
      .attr("text-anchor", "middle") 
      .style("text-anchor", "middle") 
      .attr("transform", function(d) { 
       return "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")"; 
      }) 
      .text(function(d) { return d.text; }); 
+0

将初始位置设置为离开页面向左,然后将转换添加到所需的结束位置。 – 2015-02-23 19:12:23

+0

就是这样!非常感谢你! – Pet 2015-02-23 19:23:15

回答

0

您需要做的就是将初始位置设置为离开页面向左,然后向期望的结束位置添加转换。例如:

d3.select("svg > g") 
    .attr("transform", "translate(-550,300)") 
    .transition() 
    .attr("transform", "translate(550,300)"); 
+0

太棒了!谢谢 – Pet 2015-02-23 20:25:50

+0

通过点击复选标记随时接受答案。 – 2015-02-23 20:41:18