D3.js在帧上转换回调

时间:2012-10-03 21:36:04

标签: javascript d3.js transition

有没有人知道如何使用D3完成每帧回调的转换。这是我目前正在做的事情的例子。

link.transition()
    .duration(duration)
    .attr("d", diagonal)
    .each("end",function(e) {
        if(e.target.id == current)
            show_tooltip(e.target)
    });

这当前在动画结束时为每个元素调用匿名函数。我想把它称为每一帧。

2 个答案:

答案 0 :(得分:3)

您可以注册一个自定义补间,该补间返回您想要在每个tick上调用的函数。

link.transition()
  .duration(duration)
  .attr("d", diagonal)
  .tween("side-effects", function() {
    return function() {
      console.log(d3.select(this), "tick");
    }
  });

答案 1 :(得分:1)

根据https://github.com/mbostock/d3/wiki/Transitions#timers

的D3文档

计时器队列将回调requestAnimationFrame

您应该可以使用它来实现转换。