如何在Snap SVG中取消组合元素

时间:2016-07-25 08:26:44

标签: svg transform snap.svg

我正在使用Snap SVG来构建编辑器。 我有一个带有一些变换的组标签。 我想取消组合小组。我尝试使用for循环将组中的元素添加到父级,但转换在未组合的元素中未按预期工作。

有人可以告诉我一种解组元素的方法吗?

请在这里找到JS Bin。

https://jsbin.com/jinita/edit?js,output

当我拖动黑色矩形时,整个组也会移动。 当我删除它时,我尝试取消组合,但转换不适用于该组。

PS:我不能在组元素

上调用drag()

1 个答案:

答案 0 :(得分:1)

代码有点令人困惑,因为看起来你正试图为自己添加一个组,但我可能会误解它。我稍微修改了它并按ID选择了组,只是为了知道它是正确的,而不是css选择器。

jsfiddle

我为变换修改的关键部分是这一行......

item.transform( g.transform().localMatrix.toTransformString() )

编辑:在这种情况下,您可以将其进一步缩短为

item.transform( g.transform() )

这确保我们在从组移除时获得组变换,并使用toTransformString()进行转换(我不完全确定这些,但通常似乎消除了奇怪之处)。

编辑:问题稍微修改后,可能是你真的想要完整的矩阵应用,在这种情况下会是......

item.transform( item.transform().globalMatrix.toTransformString() )

jsbin