【发布时间】:2014-06-27 02:04:03
【问题描述】:
我想为 SVG 对象设置动画,使其遵循我从 d3.js 中的行生成器构建的 SVG 路径。有没有简单的方法来实现这一目标?特别是,我想获得与我的路径相对应的插值坐标。从那里,很容易使用 tween.js 或 d3.js 本身来执行动画。
【问题讨论】:
我想为 SVG 对象设置动画,使其遵循我从 d3.js 中的行生成器构建的 SVG 路径。有没有简单的方法来实现这一目标?特别是,我想获得与我的路径相对应的插值坐标。从那里,很容易使用 tween.js 或 d3.js 本身来执行动画。
【问题讨论】:
您或许可以修改此示例:http://bl.ocks.org/mbostock/1705868
在这种情况下,使用 SVG 的 getTotalLength 和 getPointAtLength 沿 SVG 路径平移一个圆。您应该能够用任何 SVG 对象替换圆圈。
【讨论】:
据我所知,在 D3 中无法轻松获取插值 SVG 路径的坐标,即您可能必须自己进行插值。
要沿该路径为 SVG 对象设置动画,您不需要使用 D3。您可以使用 SVG <animateMotion> 元素来获得原生 SVG 动画——例如,请参阅 here。
【讨论】: