Da das <set>
Element nicht mit Firefox 3 funktioniert, denke ich, dass Sie ECMAScript verwenden müssen.
Wenn Sie fügen Sie das folgende Skript Element in Ihre 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>
Sie benötigen onload="init(evt)"
in das SVG-Element hinzufügen, um die init() Funktion aufzurufen.
Dann bis zum Ende des SVG, fügen Sie den Tooltip-Text:
<text id="tooltip" x="0" y="0" visibility="hidden">Tooltip</text>
schließlich zu jedem Element, das Sie die Mouseover-Funktion Add haben wollen:
onmousemove="ShowTooltip(evt)"
onmouseout="HideTooltip(evt)"
mouseovertext="Whatever text you want to show"
I habe eine ausführlichere Erklärung mit verbesserter Funktionalität unter http://www.petercollingridge.co.uk/interactive-svg-components/tooltip
geschrieben Ich habe noch keine Multi-Linien-Tooltips enthalten, die mehrereerfordern würdenElemente und manuelle Wortumhüllung.
Morais es könnte helfen, wenn Sie die Frage ein wenig verengt. Vielleicht ein bisschen genauer, welche Technologien Ihnen zur Verfügung stehen und welche Browser Sie unterstützen müssen (Firefox und was noch?) Nur ein Vorschlag. –
Die angenommene Antwort ist jetzt veraltet und die von Neil Fraser ist immer noch korrekt. – Craig