【发布时间】:2013-03-27 20:32:02
【问题描述】:
我正在尝试确定 d3 的默认动画是否已经使用 requestAnimationFrame 进行回调,或者我是否需要自己做。例如,我定义了一个自定义补间,它反复调用重绘函数来动画在图表上从一个域到另一个域的过渡(这是在咖啡脚本中):
rd = @redraw # a function that takes an argument to redraw the graph
@svg.transition()
.duration(1000)
.tween "zoom", ->
interp = d3.interpolate(current_dom, target_dom)
(t) -> rd interp(t)
在我所有其他重绘调用中,我使用requestAnimationFrame 安排它:
scheduleRedraw: =>
# Stop a previous request if it hasn't executed yet
cancelAnimationFrame(@animRequest) if @animRequest
@animRequest = requestAnimationFrame => @redraw
但是,我想知道我是否需要在这里做同样的事情。我一直在查看 d3 源代码,发现对 requestAnimationFrame 的唯一引用在 d3 timer class 中。希望对 d3 有更多了解的人可以帮助回答以下问题:
- d3 计时器是否全局用于所有 d3 动画和过渡?
- 我需要在这里手动使用
requestAnimationFrame吗?如果没有,在使用 d3 时我是否需要自己使用它?
【问题讨论】:
标签: javascript animation d3.js requestanimationframe