Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何使用snap.svg在循环中同时制作动画?_Jquery_Snap.svg_Svg Animate - Fatal编程技术网

Jquery 如何使用snap.svg在循环中同时制作动画?

Jquery 如何使用snap.svg在循环中同时制作动画?,jquery,snap.svg,svg-animate,Jquery,Snap.svg,Svg Animate,我正在尝试使用dynamic同时运行多个对象的动画 我想运行所有的对象都以相同的时间开始,这是动态的,并且在for循环中 我已经添加了我的代码,但是这里两个动画不能同时工作 请帮忙 多谢各位 var svg=d3。选择“demo-tiger”; var map=捕捉“demo-tiger”; //[路径号、图标号] 变量数组=[[A1,icon1], [A2,icon2] ]; var arrLength=array.length; forvar i=0;i

我正在尝试使用dynamic同时运行多个对象的动画

我想运行所有的对象都以相同的时间开始,这是动态的,并且在for循环中

我已经添加了我的代码,但是这里两个动画不能同时工作

请帮忙

多谢各位

var svg=d3。选择“demo-tiger”; var map=捕捉“demo-tiger”; //[路径号、图标号] 变量数组=[[A1,icon1], [A2,icon2] ]; var arrLength=array.length; forvar i=0;i<长度;我++{ 追加'circle'.attr'cx','0'.attr'cy','0'.attr'r','3'.attr'fill','red'.attr'id',数组[i][1]; var spaceship=map.select+array[i][1]; var flight_path=map.pathd3.select+array[i][0].attr'd'.attr{fill':'none',stroke':'none'}; var flight_path_length=Snap.path.getTotalLength flight_path; Snap.animate0,飞行路径长度,功能步骤{ moveToPoint=Snap.path.getPointAtLength飞行路径,步长; x=moveToPoint.x; y=移动点y; 宇宙飞船.变换'translate'+x+','+y+; },15000,mina.easeout; }
您需要为动画代码添加一个闭包,否则它不知道要引用哪个飞船/飞行路径/飞行路径长度,基本上它只会使用最后的细节

有几种方法可以做到这一点,但只需包括以下代码块

函数{doAnimationStuff}

这样做,因为变量在JS中具有功能范围。请记住,动画函数稍后调用,因此它需要在稍后使用for循环时知道这些变量

编辑:您可能还发现您可以在Snap中完成所有代码,而不需要d3.js,反之亦然,但不确定这是否是一个更大项目的一部分,您需要两者

var svg=d3。选择“demo-tiger”; var map=捕捉“demo-tiger”; //[路径号、图标号] 变量数组=[[A1,icon1], [A2,icon2] ]; var arrLength=array.length; forvar i=0;i<长度;我++{ 追加'circle'.attr'cx','0'.attr'cy','0'.attr'r','3'.attr'fill','red'.attr'id',数组[i][1]; 函数{ var spaceship=map.select+array[i][1]; var flight_path=map.pathd3.select+array[i][0].attr'd'.attr{fill':'none',stroke':'none'}; var flight_path_length=Snap.path.getTotalLength flight_path; Snap.animate0,飞行路径长度,功能步骤{ moveToPoint=Snap.path.getPointAtLength飞行路径,步长; x=moveToPoint.x; y=移动点y; 宇宙飞船.变换'translate'+x+','+y+; },15000,mina.easeout; }; }
非常感谢您的工作,我只需添加功能,OMG: