html - 绘制后订购 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>
推荐阅读
- python - 需要 Python Webscraping 解决方案推荐
- reactjs - 如何将搜索与我的反应组件中的列表连接起来?
- javascript - 导航栏在不同页面上的不同行为
- firebase - 所有人都没有收到 FCM admin sdk sendToTopic
- python - Python 轮:安装包后出现“ModuleNotFoundError”
- javascript - 用于更改谷歌图表上显示 x 轴范围的按钮
- c# - 检查数据库中的重复值
- .net - 命名空间 System.Security 中不存在类型或命名空间名称 SecurityRulesAttribute
- c# - AspNetCore 无法解析服务
- mysql - 计算跨多列 sql 的字符串出现次数