Я пытаюсь выяснить, использует ли d3 по умолчанию анимации requestAnimationFrame
для обратного вызова или если мне нужно это сделать самому. Например, я определил пользовательские анимации, которая вызывает функцию перерисовки несколько раз, чтобы анимация перехода от одного домена к другому на графике (это в CoffeeScript):Переходы и анимации 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?