我有一个奇特的小 D3 过渡,当鼠标悬停在特定的 svg 元素上时触发。我想在转换完成时触发一个函数。没问题。根据文档,我只需要监听转换上的“结束”事件。这就是我遇到麻烦的地方:如果用户在转换完成之前将鼠标移出触发项目,我想中止转换并且不触发我的函数。我发现的每种可以提前结束转换的机制仍然会调度结束事件。
我尝试过transition().duration(0),我知道它会用新的 0 持续时间的过渡覆盖我的过渡,但结束事件仍然会触发。我不知道如何在不触发结束事件的情况下中断和销毁转换。任何帮助将不胜感激。
最佳答案
您应该链接您的转换,而不是等待结束事件然后触发转换。当转换停止时,整个链就会停止。这样做的目的是为了可以执行更新的动画。
以下是链接的示例:
http://bl.ocks.org/mbostock/1125997
只需删除 .each("end", Repeat);
并观察会发生什么
希望这有帮助。
关于javascript - D3.js 中止转换并防止结束事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24522160/