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

标签 javascript svg d3.js

我有一个奇特的小 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/

相关文章:

javascript - 无法使用 Rails 3.0 的 best-in-place gem 编辑记录

javascript - 是否可以将多个 webm blob/剪辑合并到一个顺序视频客户端中?

javascript - 如何按顺序发出 page.open() 请求?

javascript - 如何将 SVG 代码转换为 JavaScript 函数,为谷歌地图标记创建它

javascript - d3.json console.log 返回未定义或 JSON.parse 在第 1 行返回意外字符

javascript - IE8 中的偶数和奇数选择器

svg - 如何在svg中将一条路径分成两条路径

javascript - jQuery 将属性添加到 SVG 字符串

javascript - 根据状态更改节点颜色

csv - 在 DC.js 中加载多个 CSV,添加一个值,并将结果连接到单个数据表中