Поскольку элемент <set>
не работает с Firefox 3, я думаю, вам нужно использовать ECMAScript.
Если добавить следующий элемент сценария в вашем SVG:
<script type="text/ecmascript"> <![CDATA[
function init(evt) {
if (window.svgDocument == null) {
// Define SGV
svgDocument = evt.target.ownerDocument;
}
tooltip = svgDocument.getElementById('tooltip');
}
function ShowTooltip(evt) {
// Put tooltip in the right position, change the text and make it visible
tooltip.setAttributeNS(null,"x",evt.clientX+10);
tooltip.setAttributeNS(null,"y",evt.clientY+30);
tooltip.firstChild.data = evt.target.getAttributeNS(null,"mouseovertext");
tooltip.setAttributeNS(null,"visibility","visible");
}
function HideTooltip(evt) {
tooltip.setAttributeNS(null,"visibility","hidden");
}
]]></script>
Вам нужно добавить onload="init(evt)"
в элемент SVG, чтобы вызвать функцию Init().
Затем к концу SVG, добавьте текст всплывающей подсказки:
<text id="tooltip" x="0" y="0" visibility="hidden">Tooltip</text>
Наконец, для каждого из элементов, которые вы хотите иметь функцию Mouseover надстройку:
onmousemove="ShowTooltip(evt)"
onmouseout="HideTooltip(evt)"
mouseovertext="Whatever text you want to show"
I 'более подробное объяснение с улучшенной функциональностью на http://www.petercollingridge.co.uk/interactive-svg-components/tooltip
Я еще не включил многострочные всплывающие подсказки, для чего потребуется несколько <tspan>
элементы и ручная перенос слов.
Мораиш это может помочь, если вы сузили немного вопрос. Может быть, немного конкретнее о том, какие технологии доступны для вас и какие браузеры вам нужны для поддержки (Firefox и что еще?) Просто предложение. – 2008-09-19 15:27:23
Принятый ответ теперь устаревший, но тот, который Нил Фрейзер по-прежнему прав. – Craig 2014-12-21 23:39:26