SVG – Learning by Coding
1:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
2:
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
3:
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd" [
4:
<!ATTLIST svg xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink">
5:
]>
6: 7:
<!-- SVG - Learning by Coding - http://www.datenverdrahten.de/svglbc/ -->
8:
<!-- Author: Dr. Thomas Meinike 02/03 - thomas@handmadecode.de -->
9: 10:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
11:
onload="getSVGDoc(evt)" onzoom="ZoomControl()">
12: 13:
<title>SVG - Learning by Coding</title>
14:
<desc>SVG-Spezifikation in Beispielen</desc>
15: 16:
<defs>
17: 18:
<script type="text/javascript">
19:
<![CDATA[
20: 21:
var svgdoc,svgroot;
22: 23: 24:
function getSVGDoc(load_evt)
25:
{
26:
svgdoc=load_evt.target.ownerDocument;
27:
svgroot=svgdoc.documentElement;
28:
}
29: 30: 31:
function ShowTooltip(mousemove_event)
32:
{
33:
var ttrelem,tttelem,posx,posy,curtrans,ctx,cty,txt;
34: 35:
ttrelem=svgdoc.getElementById("ttr");
36:
tttelem=svgdoc.getElementById("ttt");
37: 38:
posx=mousemove_event.clientX;
39:
posy=mousemove_event.clientY;
40: 41:
txt="x="+posx+" | y="+posy;
42:
tttelem.childNodes.item(0).data=txt;
43: 44:
curtrans=svgroot.currentTranslate;
45:
ctx=curtrans.x;
46:
cty=curtrans.y;
47: 48:
ttrelem.setAttribute("x",posx-ctx);
49:
ttrelem.setAttribute("y",posy-cty-20);
50:
tttelem.setAttribute("x",posx-ctx+5);
51:
tttelem.setAttribute("y",posy-cty-8);
52:
ttrelem.setAttribute("width",tttelem.getComputedTextLength()+10);
53:
tttelem.setAttribute("style","fill: #00C; font-size: 11px; visibility: visible");
54:
ttrelem.setAttribute("style","fill: #FFC; stroke: #000; stroke-width: 0.5px;\
55:
visibility: visible");
56:
}
57: 58: 59:
function HideTooltip()
60:
{
61:
var ttrelem,tttelem;
62: 63:
ttrelem=svgdoc.getElementById("ttr");
64:
tttelem=svgdoc.getElementById("ttt");
65:
ttrelem.setAttribute("style","visibility: hidden");
66:
tttelem.setAttribute("style","visibility: hidden");
67:
}
68: 69: 70:
function ZoomControl()
71:
{
72:
var curzoom;
73: 74:
curzoom=svgroot.currentScale;
75:
svgdoc.getElementById("tooltip").setAttribute("transform","scale("+1/curzoom+")");
76:
}
77: 78:
]]>
79:
</script>
80: 81:
</defs>
82: 83:
<text x="20" y="30" style="fill: #000; font-size: 24px">
84:
Tooltip bei Mausbewegung anzeigen</text>
85: 86:
<rect x="20" y="50" width="500" height="300"
87:
style="fill: #FFF; stroke: #000"
88:
onmousemove="ShowTooltip(evt)" onmouseout="HideTooltip()"/>
89: 90:
<text x="35" y="200" style="fill: #F00; font-size: 12px; pointer-events: none">
91:
Beim Bewegen des Mauszeigers über dem Rechteck werden die Koordinaten angezeigt.
92:
</text>
93: 94:
<g id="tooltip"><!-- Tooltip - Beginn (ttr=Tooltip-Rechteck, ttt=Tooltip-Text) -->
95:
<rect id="ttr" x="0" y="0" rx="5" ry="5" width="100" height="16"
96:
style="visibility: hidden"/>
97:
<text id="ttt" x="0" y="0" style="visibility: hidden">dyn. Text</text>
98:
</g><!-- Tooltip - Ende -->
99: 100:
</svg>
[zum Anfang]