绘制后排序 svg 元素
Ordering svg elements after drawing
我正在使用 React 来动态绘制方框和信息。当用户将鼠标悬停在框上时,信息可见。此功能有效。
我的问题是当一个元素在另一个元素之后呈现时,该信息框将位于前一个框的下方。信息框应始终位于顶部。这是目前的解决方案。
<svg>
<g>
<rect> <!-- Always visible -->
<text> <!-- Visible on rect hover -->
</g>
<g>
<rect> <!-- Always visible -->
<text> <!-- Visible on rect hover -->
</g>
...
</svg>
我知道这个问题可以通过重新组合组件来解决,但后来我 运行 通过将鼠标悬停在框上来解决问题。有没有类似于老式 z-index 的方法来解决这个问题?
我最终找到的解决方案是将它们分组为框和信息框,然后在“信息框”组中添加一个不可见的框来侦听悬停事件。
<svg>
<g>
<g>
<rect> <!-- Always visible -->
</g>
<g>
<rect> <!-- Always visible -->
</g>
...
</g>
<g>
<g>
<rect> <!-- Always invisible -->
<text> <!-- Visible on rect hover -->
</g>
<g>
<rect> <!-- Always invisible -->
<text> <!-- Visible on rect hover -->
</g>
...
</g>
...
</svg>
我正在使用 React 来动态绘制方框和信息。当用户将鼠标悬停在框上时,信息可见。此功能有效。
我的问题是当一个元素在另一个元素之后呈现时,该信息框将位于前一个框的下方。信息框应始终位于顶部。这是目前的解决方案。
<svg>
<g>
<rect> <!-- Always visible -->
<text> <!-- Visible on rect hover -->
</g>
<g>
<rect> <!-- Always visible -->
<text> <!-- Visible on rect hover -->
</g>
...
</svg>
我知道这个问题可以通过重新组合组件来解决,但后来我 运行 通过将鼠标悬停在框上来解决问题。有没有类似于老式 z-index 的方法来解决这个问题?
我最终找到的解决方案是将它们分组为框和信息框,然后在“信息框”组中添加一个不可见的框来侦听悬停事件。
<svg>
<g>
<g>
<rect> <!-- Always visible -->
</g>
<g>
<rect> <!-- Always visible -->
</g>
...
</g>
<g>
<g>
<rect> <!-- Always invisible -->
<text> <!-- Visible on rect hover -->
</g>
<g>
<rect> <!-- Always invisible -->
<text> <!-- Visible on rect hover -->
</g>
...
</g>
...
</svg>