SVG:除了appendNode之外的“置于顶层”的替代方法

4
据我所知,将某些内容置于前台的唯一方法是删除/添加或仅添加。然而,这种方法效率低下,因此我想先在这里进行确认。 我有一组复杂的对象,它们会在鼠标悬停时弹出(路径和文本)。最初,我认为可以通过创建一个静态实例并隐藏它来处理它。每当需要时,我只需将其翻译并使其可见。
我以为这个方法可行,但事实证明它是透明的 - 在脚本中动态创建的任何内容都会出现在它的上方。有没有办法让它起作用?另一种选择是在每次鼠标悬停时从头开始创建它,然后在鼠标移开时删除它,但这种做法感觉不对。
谢谢 - Al

1
可能是With javascript, can I change the Z index/layer of an svg "g" element?的重复问题。 - Cristian Sanchez
在https://dev59.com/MHRB5IYBdhLWcg3w4bAo中添加了一种替代方法(是的,我认为这是一个重复的问题 - 也许这些问题可以合并)。 - Erik Dahlström
1个回答

0
你可以给它一个巨大的 z-index,并在其定位为绝对(或固定)时切换可见性,或在其静态时切换显示。最少的重绘是将其定位为绝对或固定,并在隐藏和可见之间切换可见性。

3
SVG规范没有定义如何实现z-index支持(即:目前不需要支持z-index)。但是,如果svg根元素遵循CSS盒模型(例如在HTML中的内联SVG),则只能在svg根元素上使用z-index(因为CSS规范已经定义了如何使用它)。然而,有一个提案计划在将来在SVG内部添加z-index支持,请参见http://www.w3.org/Graphics/SVG/WG/wiki/Proposals/z-index。 - Erik Dahlström

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接