从 d3 3.1.9 升级到 3.1.10 后,我的 d3 svg 可视化上的动画中断了。 我猜这与此提交(删除旧功能)有关,并且我使用的是旧 api。 https://github.com/mbostock/d3/commit/d9659b6794fa1985c756d2a7d8ee73174e54ee08
即使是最简单的过渡也会失败(将组元素向右移动 75 像素):
d3.select('g.slider').transition().duration(500).attr('transform','translate(100,0)');
我在其他元素上有类似的过渡,这些过渡将与上述过渡同时开始。过渡相互抵消是否会发生冲突,即使它们位于完全不同的元素上?我希望我只是以错误的方式使用(新的?)API? 请注意,它在 3.1.9 上运行良好。我已经尝试按照 Mike 的指南进行操作(使用 d3.js 3 进行转换),但是 api 看起来是一样的,所以我被卡住了: http://bost.ocks.org/mike/transition/
编辑:如果我是唯一遇到此问题的人,我会感到惊讶。从 3.1.9 移动到 3.1.10 时,多年来我使用 d3 创建的所有动画可视化都停止工作
最佳答案
请使用GitHub issues报告错误。
并且请创建一个完整的示例来演示您的意外行为,而不是断章取意地引用代码片段。我无法重现您描述的行为。这是您在完整示例中正常工作的代码段,http://bl.ocks.org/mbostock/b4e46124258d1b75accb :
slider.transition()
.duration(1000)
.attr("transform", "translate(100,0)");
D3 有数千个测试和数百个示例,其中许多包括过渡和动画,并且没有一个受此更改的影响。您的所有可视化都使用 d3.timer 中这个晦涩的、未记录的功能吗?我很惊讶此更改会影响您的代码,我绝对不希望它广泛传播。
如果您仍然遇到意外行为,请在 GitHub 问题上跟进,并可以提供更多详细信息供我调查。
关于javascript - 从 d3 3.1.9 升级到 3.1.10 中断动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17011958/