D3.js:连续过渡?

Ric*_*ard 5 transition d3.js

如何在D3.js中连续进行转换?

例如,假设我想要将body颜色从红色变为蓝色并再次返回(我不这样做,那将是可怕的,但请继续使用它).

我就是这样做的:

d3.select("body").transition().duration(1000).style("background-color", "red");
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

我见过的最接近的例子d3.timer,但我不确定是否有更好的方法.

Lar*_*off 5

您可以使用transition.each()和"结束"事件.代码看起来如下所示.

function myTrans() {
    d3.select("body").transition().duration(1000).style("background-color", "red")
      .each("end", function() {
        d3.select(this).transition().duration(1000).style("background-color", "blue")
          .each("end", function() { myTrans(); });
      });
}
Run Code Online (Sandbox Code Playgroud)

  • 这很好,谢谢.虽然我有点紧张,它最终可能会崩溃浏览器 - 它会逐渐占用越来越多的内存吗? (4认同)