捕捉SVG-移动加载的元素

捕捉SVG-移动加载的元素,svg,snap.svg,Svg,Snap.svg,我试图使用它在屏幕上移动SVG图形中的元素。这是元素的代码: 我想在屏幕上移动这个元素(例如,我想先向上然后向左再向下移动到初始位置),所以我首先创建一个画布并获取元素。我使用以下代码: var canvas=Snap(“div#canvas”); 加载(“MyImage.svg”,函数(图像){ var butterfly=image.选择(“g#butterfly”); 画布3.附加(蝴蝶); //现在我想移动元素。。。 } 有人有主意吗 我找到了有关移动圆或矩形的信息,这些圆或矩形具

我试图使用它在屏幕上移动SVG图形中的元素。这是元素的代码:


我想在屏幕上移动这个元素(例如,我想先向上然后向左再向下移动到初始位置),所以我首先创建一个画布并获取元素。我使用以下代码:

var canvas=Snap(“div#canvas”);
加载(“MyImage.svg”,函数(图像){
var butterfly=image.选择(“g#butterfly”);
画布3.附加(蝴蝶);
//现在我想移动元素。。。
}
有人有主意吗

我找到了有关移动圆或矩形的信息,这些圆或矩形具有易于修改的x、y、cx或cy等属性,但在我的例子中,我没有这些属性…

在蝴蝶上。您需要平移变换来移动它。例如

butterfly.transform("t100,100");
这和拉斐尔一样,但你也可以用


SVG Transform属性将转换列表应用于元素及其子元素(这里有一个非常好的教程:)。您可以使用不同类型的转换;例如,正如Totty所要求的,要移动到x=1和y=1,您可以使用

myElement.setAttribute('transform','translate(30,100)');
有关此问题的更多信息,请参见此答案:。阅读更多内容后,您会注意到,您甚至可以通过Snap轻松使用动画:

myElement.animate({ transform:'translate(30,100)'}, 700, mina.bounce );
也许你可以试试

butterfly.drag()

butterfly.transform(“T100100”);
100之前的t在这里做什么?t=translate=move x,y这对我来说真的很糟糕,我怎么能简单地设置x=1,y=1?如果你有问题,你应该使用提问按钮提问。
butterfly.drag()