SVGはレンダリングに"painters model"を使用しています。つまり、ソースコード/ DOMの後ろにある要素は、ソース/ DOMの後に表示される項目によって常に引き継ぐことができます。 (これは、アイテムの並べ替えを許可するためにz-index
プロパティを持つHTMLとは対照的です)。
したがって、アイテムを「トップ」に移動するには、アイテムを別のアイテムに再挿入する必要がありますDOM内のポイント。たとえば、this demoを参照してください。青色と赤色のボックスを重複するようにドラッグし、それぞれを交互にクリックします。これはソースコードのライン94によって達成される:
el.parentNode.appendChild(el); // move to top
コメント要素が絶対トップに移動されるのではなく、そのすべての兄弟の最後に描画される限り、わずかに紛らわしいです。あなたがソースDOMを見れば、あなたは(簡体字)表示されます:
<svg ...>
<g transform="scale(1.2,0.8)">
<rect class="drag resize" ... fill="#c66"/>
<rect class="drag resize" ... fill="#69c"/>
</g>
<circle class="drag sizer" ... r="5"/>
<circle class="drag sizer" ... r="5"/>
</svg>
をこのように、あなたは<g>
競売で最後の子であることを並べ替えされた矩形をクリックすると、他の矩形内の後にレンダリングそのグループの上に描画されますが、常にコーナーの上に描画される黄色の円の前にレンダリングされます。
明確にすることができます:グラフ上にドラッグ&ドロップできる「フラグ」は何ですか?私はあなたの問題を理解しています(下に示すように)一般的にどのように解決するかを教えてもらえますが、具体的に再現することはできませんので、解決方法のアドバイスはできません。 (私はそれがあなたの「旗」であれば、「On Series」アイテムをドラッグして移動することはできません) – Phrogz