将工具提示添加到 SVG 矩形标签
Adding tooltip to SVG rect tag
将工具提示添加到 <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>
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>
我试过你的代码,但它不起作用 (Chrome)。然后我在这个网站上发现了一个关于工具提示的post:
How to add a tooltip to an svg graphic?
因此,您需要这样做,而不是添加标题属性:
<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")
将工具提示添加到 <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>
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>
我试过你的代码,但它不起作用 (Chrome)。然后我在这个网站上发现了一个关于工具提示的post:
How to add a tooltip to an svg graphic?
因此,您需要这样做,而不是添加标题属性:
<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")