D3.js中止转换并防止结束事件

时间:2014-07-02 02:53:48

标签: javascript svg d3.js

我有一个奇特的小D3转换,在特定svg元素的鼠标悬停时触发。我希望在转换完成时触发一个函数。没问题。根据文档,我只需要听取过渡时的“结束”事件。这就是我遇到麻烦的地方:如果用户在转换完成之前鼠标触发了触发项目,我想中止转换而不是激活我的功能。我发现的每一种机制都可以过早地结束过渡。

我已经尝试过渡()。持续时间(0),据我所知,它会用新的0持续时间覆盖我的转换,但结束事件仍然会触发。我无法弄清楚如何在不触发结束事件的情况下中断和销毁转换。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您应该链接转换而不是等待结束事件,然后解除转换。当转换停止时,整个链条停止。这是为了让更新的动画可以执行。

以下是链接示例:

http://bl.ocks.org/mbostock/1125997

只需删除.each("end", repeat);并观察会发生什么

希望这有帮助。