Добавление всплывающей подсказки в тег SVG rect
какое лучшее решение для добавления всплывающей подсказки в <rect>
?
Я создал карту SVG с несколькими <rect>
теги, и я хотел бы показать подсказку при наведении мыши. Используя 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 ответов
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). Затем я нашел на этом сайте сообщение о всплывающей подсказке:
как добавить подсказку к svg-графику?
поэтому вместо добавления атрибута 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")