我有一个由d3.timer()
控制的动画。 5秒后,我有函数return True
来结束计时器并启动后续功能。
但是,当计时器结束时,我无法使用任何d3过渡 - 例如,我无法使SVG淡入淡出,但我仍然可以将它删除。同样,我可以更改文本,但我无法更改样式。
为什么会这样?有办法解决吗?
这是我正在使用的jsFiddle(有问题的过渡在最底层评论):http://jsfiddle.net/Amyunimus/Z59ey/
答案 0 :(得分:2)
你看到这种行为是因为
endStarted = True;
抛出异常 - 未定义True
。如果您使用'True'
代替它,它会起作用。请注意,转换是异步的。这意味着您的代码会在转换为黑色之前删除SVG。要解决此问题,请使用
svg.transition().delay(1000).remove();