D3.js chain transitions for compound animations for different shapes

后端 未结 1 910
灰色年华
灰色年华 2020-12-14 11:57

What I\'m trying to do...

I\'m toying with D3 to make a compound animation. I have the following final state:

相关标签:
1条回答
  • 2020-12-14 12:46

    The transition are easier to chain since d3.v3 without using "end". See the notes here.

    For example, look at this one:

    rect.transition()
      .duration(500)
      .delay(function(d, i) { return i * 10; })
      .attr("x", function(d, i, j) { return x(d.x) + x.rangeBand() / n * j; })
      .attr("width", x.rangeBand() / n)
      .transition()
      .attr("y", function(d) { return y(d.y); })
      .attr("height", function(d) { return height - y(d.y); });
    

    That's for transitions on the same element. For different elements, look at this one.

    // First transition the line & label to the new city.
    var t0 = svg.transition().duration(750);
    t0.selectAll(".line").attr("d", line);
    t0.selectAll(".label").attr("transform", transform).text(city);
    
    // Then transition the y-axis.
    y.domain(d3.extent(data, function(d) { return d[city]; }));
    var t1 = t0.transition();
    t1.selectAll(".line").attr("d", line);
    t1.selectAll(".label").attr("transform", transform);
    t1.selectAll(".y.axis").call(yAxis);
    

    The transition is attached to the svg element and chained from there.

    0 讨论(0)
提交回复
热议问题