【问题标题】:SVG: alternatives to appendNode for 'bring to front'SVG:“带到前面”的 appendNode 的替代品
【发布时间】:2011-06-08 17:32:28
【问题描述】:

据我所知,将某些内容放在前面的唯一方法是删除/追加,或者只是追加。但是,这太低效了,我想我先在这里检查一下。 我有一组复杂的对象,它们会在鼠标悬停时弹出(路径和文本)。我最初认为我可以通过创建弹出窗口的一个静态实例并将其隐藏来处理这个问题。每当需要时,我只需翻译它并使其可见。

我认为这行得通,但事实证明它是透明的——在脚本中动态创建的任何东西都会出现在它上面。有什么办法可以使这项工作?另一种方法是在每次鼠标悬停时从头开始创建它,然后在鼠标悬停时将其删除,这感觉不对。

谢谢-

阿尔

【问题讨论】:

标签: javascript svg


【解决方案1】:

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

【讨论】:

  • SVG 规范没有定义它应该如何工作(阅读:它目前不需要 z-index 支持)。但是,对于 svg 根元素,如果它受制于 CSS 框模型(例如用于 html 中的内联 svg),那么您只能在 svg 根上使用 z-index(因为 CSS 规范然后定义它是如何工作的) .然而,有一个建议在未来在 svg 中添加 z-index,请参阅w3.org/Graphics/SVG/WG/wiki/Proposals/z-index
猜你喜欢
  • 1970-01-01
  • 2011-10-24
  • 2011-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多