当前位置: 首页 > 面试题库 >

如何在SVG图形中添加工具提示?

夏季萌
2023-03-14
问题内容

我有一系列的svg矩形(使用D3.js),我想在鼠标悬停时显示一条消息,该消息应被用作背景的框包围。它们应彼此完全对齐,并与矩形(顶部和中心)完全对齐。做这个的最好方式是什么?

我尝试使用“ x”,“ y”,“ width”和“ height”属性添加svg文本,然后在svg
rect之前添加。问题是文本的参考点在中间(因为我想使它居中对齐text-anchor: middle),但是对于矩形,它是左上角的坐标,而且我想在文本周围留一点空白,这使它有点痛苦。

另一个选择是使用html div,这会很好,因为我可以直接添加文本和填充,但是我不知道如何获取每个矩形的绝对坐标。有没有办法做到这一点?


问题答案:

您是否可以仅使用SVG <title>元素及其传达的默认浏览器渲染?(注:这是不一样的title,你可以上使用属性DIV / IMG /跨度在HTML,它需要一个子元素命名title

rect {
  width: 100%;
  height: 100%;
  fill: #69c;
  stroke: #069;
  stroke-width: 5px;
  opacity: 0.5
}
<p>Mouseover the rect to see the tooltip on supporting browsers.</p>

<svg xmlns="http://www.w3.org/2000/svg">
  <rect>
    <title>Hello, World!</title>
  </rect>
</svg>

另外,如果您确实想在SVG中显示HTML,则可以直接嵌入HTML:

rect {
  width: 100%;
  height: 100%;
  fill: #69c;
  stroke: #069;
  stroke-width: 5px;
  opacity: 0.5
}

foreignObject {
  width: 100%;
}

svg div {
  text-align: center;
  line-height: 150px;
}
<svg xmlns="http://www.w3.org/2000/svg">
  <rect/>
  <foreignObject>
    <body xmlns="http://www.w3.org/1999/xhtml">
      <div>
        Hello, <b>World</b>!
      </div>
    </body>      
  </foreignObject>
</svg>

…但是然后您需要JS来打开和关闭显示。如上所示,使标签出现在正确位置的一种方法是将rect和HTML包裹在相同的 位置,从而将它们定位在一起。

要使用JS查找SVG元素在屏幕上的位置,可以使用getBoundingClientRect(),



 类似资料:
  • 我有一系列svg矩形(使用D3.js),我想在mouseover上显示一条消息,该消息应该被一个充当背景的框包围。它们应该彼此完全对齐,并与矩形(在顶部和居中)完全对齐。做这件事最好的方法是什么? 我尝试使用“x”、“y”、“width”和“height”属性添加一个svg文本,然后预置一个svg rect。问题是文本的参考点在中间(因为我希望它居中对齐,所以我使用了),但对于矩形,它是左上的坐标

  • 问题内容: 我想要一个添加到自定义的 JMapViewer 。但是,取消搜索并不能帮助我解决这个问题。 自定义 MapMarker 为: 绘制方法的覆盖是 感谢您提供的任何帮助。 问题答案: 覆盖的方法。在您的实现中,用于将坐标转换为大地坐标。下面的示例仅显示未格式化的坐标。您需要找到最接近的文本并返回适当的文本。 附录: 是否可以将工具提示直接添加到图像? 没有; 是处理工具提示的外壳。 我在地

  • 问题内容: 如何在JTable的行中添加工具提示(Java Swing)?这些工具提示应包含相对行的相同值。 这是我在扩展JTable的类中使用的代码。它覆盖了方法“ prepareRenderer”,但是我得到了空单元格,并且为行中的每个单元格添加了一个工具提示,而不是整个行的一个工具提示(这就是我想要的): 问题答案: 它为行中的每个单元格添加了一个工具提示,而不是整个行中的一个工具提示 您正

  • 我有一个图标列表。我想把图标的颜色改为白色。默认情况下,我的图标是黑色的。伙计们有什么建议吗?

  • 问题内容: 我试图找出是否存在一种方法以及如何使用python从网页中的Tableau嵌入式图形中刮取工具提示值。 这是当用户将鼠标悬停在条形图上时带有工具提示的图形的示例: https://public.tableau.com/views/NumberofCOVID-19 Patientsadmittedordischarged / DASHPublicpage_ Patients Discha

  • 我想在我的模型中使用“reason”属性为添加一个工具提示。我该怎么做?