将工具提示添加到SVG rect标记

时间:2015-01-23 13:55:58

标签: html css svg tooltip title

<rect>添加工具提示的最佳解决方案是什么?

我已经使用多个<rect>标签创建了SVG地图,我想在鼠标悬停时显示工具提示。使用title属性很好,但有没有选项如何使用CSS / Javascript / jQuery重新设置它还是有更好的选项来添加工具提示?

<svg version="1.1" baseProfile="basic" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 50 50" xml:space="preserve">
    <g>
        <rect id="1" title="There's some text" x="0" y="0" fill="#666666" width="20" height="20"/>
        <rect id="2" title="There's another text" x="30" y="0" fill="#666666" width="20" height="20"/>
    </g>
</svg>

2 个答案:

答案 0 :(得分:15)

SVG使用标题元素,而不是属性,但不能格式化它们。如果您需要样式化,则需要动态创建标题<text>元素,并使用javascript将其放置在正确的位置。

这是默认工具提示的样子......

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 50 50" xml:space="preserve">
    <g>
        <rect id="1" fill="#666666" width="20" height="20">
          <title>There's some text</title>
        </rect>
        <rect id="2" x="30" fill="#666666" width="20" height="20">
          <title>There's another text</title>
        </rect>
   </g>
</svg>

答案 1 :(得分:0)

我尝试了你的代码,但它不起作用(Chrome)。然后我在这个网站上发现了一个关于工具提示的帖子:

How to add a tooltip to an svg graphic?

所以不需要添加title属性,你需要这样做:

<rect id="1" x="0" y="0" fill="#666666" width="20" height="20"><title>"There's some text"</title/></rect>

<强>更新

您可以使用javascript和jquery

更改文本和样式

示例:

$("#1").find("title").html("Text")