当另一个拖过顶部时识别SVG元素

时间:2015-07-09 08:55:53

标签: javascript html svg

我在容器中有几个SVG元素。如果我将一个元素拖到另一个元素的顶部,我想将该元素移开。我理解使用SVG我需要重绘所有元素,但我需要知道我需要移动以重新定位它的元素的ID。 尝试识别元素,但我最终得到的元素是我拖动而不是下面的元素。有没有办法做到这一点??? 找到了大量的答案移动SVG元素,但没有一个拖动一个在另一个上直接影响。也许我在说错误的搜索问题。 感谢

3 个答案:

答案 0 :(得分:0)

我没有完全理解这个问题,但你可以像这样命名任何svg元素:

<polygon id="somePolygonId"...></polygon>

更一般<svgelement id="yourId"...></svgelement>

我建议检查snapsvg.io(http://snapsvg.io/),他们有.drag()方法可以提供帮助,以及.select("#id")方法。

希望这有帮助!

答案 1 :(得分:0)

如果您只想移动大对象,而不是寻找像素准确性,则通过在每个元素上调用07-09 20:52:45.850 26369-26369/? D/dalvikvm﹕ Late-enabling CheckJNI 07-09 20:52:46.681 26369-26369/com.example.tony.acctest E/Trace﹕ error opening trace file: No such file or directory (2) 07-09 20:52:47.362 26369-26369/com.example.tony.acctest I/dalvikvm﹕ Could not find method android.view.ViewGroup.onRtlPropertiesChanged, referenced from method android.support.v7.widget.Toolbar.onRtlPropertiesChanged 07-09 20:52:47.362 26369-26369/com.example.tony.acctest W/dalvikvm﹕ VFY: unable to resolve virtual method 13334: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I)V 07-09 20:52:47.362 26369-26369/com.example.tony.acctest D/dalvikvm﹕ VFY: replacing opcode 0x6f at 0x0007 07-09 20:52:47.372 26369-26369/com.example.tony.acctest I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations 07-09 20:52:47.372 26369-26369/com.example.tony.acctest W/dalvikvm﹕ VFY: unable to resolve virtual method 412: Landroid/content/res/TypedArray;.getChangingConfigurations ()I 07-09 20:52:47.372 26369-26369/com.example.tony.acctest D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002 07-09 20:52:47.372 26369-26369/com.example.tony.acctest I/dalvikvm﹕ Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType 07-09 20:52:47.372 26369-26369/com.example.tony.acctest W/dalvikvm﹕ VFY: unable to resolve virtual method 434: Landroid/content/res/TypedArray;.getType (I)I 07-09 20:52:47.372 26369-26369/com.example.tony.acctest D/dalvikvm﹕ VFY: replacing opcode 0x6e at 0x0002 并将其与getBoundingClientRect()进行比较的文档进行递归,{ {1}}。

https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect

最顶层的(至少在SVG中)将是最后一场比赛。

答案 2 :(得分:0)

通过找到放置坐标然后重新绘制容器内容的组合解决了该问题。 谢谢你指点我正确的方向