我有一个奇特的小D3转换,在特定svg元素的鼠标悬停时触发。我希望在转换完成时触发一个函数。没问题。根据文档,我只需要听取过渡时的“结束”事件。这就是我遇到麻烦的地方:如果用户在转换完成之前鼠标触发了触发项目,我想中止转换而不是激活我的功能。我发现的每一种机制都可以过早地结束过渡。
我已经尝试过渡()。持续时间(0),据我所知,它会用新的0持续时间覆盖我的转换,但结束事件仍然会触发。我无法弄清楚如何在不触发结束事件的情况下中断和销毁转换。任何帮助将不胜感激。
答案 0 :(得分:1)
您应该链接转换而不是等待结束事件,然后解除转换。当转换停止时,整个链条停止。这是为了让更新的动画可以执行。
以下是链接示例:
http://bl.ocks.org/mbostock/1125997
只需删除.each("end", repeat);
并观察会发生什么
希望这有帮助。