SVG – Learning by Coding

[ baseVal_animVal.svg --> Grafik anzeigen ]

 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: <!--    AuthorDrThomas Meinike 06/04 thomas@handmadecode.de     -->
 9: 
10: <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
11:   onload="Init(evt)">
12: 
13:   <title>SVG Learning by Coding</title>
14:   <desc>SVG-Spezifikation in Beispielen</desc>
15: 
16:   <defs>
17: 
18:     <style type="text/css">
19:       <![CDATA[
20: 
21:       *
22:       {
23:         font-familysans-serif;
24:         font-size12px;
25:       }
26: 
27:       ]]>
28:     </style>
29: 
30: 
31:     <script type="text/javascript">
32:       <![CDATA[
33: 
34:         var svgdoc,circleobj,lineobj,textobj,timer;
35: 
36: 
37:         function Init(load_evt)
38:         {
39:           // Objekte vordefinieren
40:           svgdoc=load_evt.target.ownerDocument;
41:           circleobj=svgdoc.getElementById("kreis");
42:           lineobj=svgdoc.getElementById("linie");
43:           textobj=svgdoc.getElementById("cxout");
44: 
45:           // baseVal-Wert des Kreis-Attributes cx abfragen und anzeigen (Text)
46:           if(circleobj.cx && circleobj.cx.baseVal)
47:           textobj.firstChild.setData("cx="+circleobj.cx.baseVal.value);
48:           else alert("Eigenschaft 'baseVal' existiert nicht!");
49:         }
50: 
51: 
52:         function AnimControl()
53:         {
54:           // animVal-Wert des Kreis-Attributes cx abfragen und anzeigen (Text+Linie)
55:           textobj.firstChild.setData("cx="+Math.round(circleobj.cx.animVal.value));
56:           lineobj.setAttribute('x2',circleobj.cx.animVal.value);
57:         }
58: 
59: 
60:         function AnimBegin()
61:         {
62:           // Timer-Intervall zum Aufruf der Funktion AnimControl() auf 100ms setzen
63:           if(circleobj.cx && circleobj.cx.animVal)
64:             timer=setInterval("AnimControl()",100);
65:           else alert("Eigenschaft 'animVal' existiert nicht!");
66:         }
67: 
68: 
69:         function AnimEnd()
70:         {
71:           // Timer entfernen
72:           if(timer)clearInterval(timer);
73:         }
74: 
75:       ]]>
76:     </script>
77: 
78:   </defs>
79: 
80:   <text x="20" y="30" style="fill: #000; font-size: 24px">
81:     Werte baseVal und animVal abfragen</text>
82:   <text x="20" y="50">Funktioniert mit ASV 6.0aber nicht mit ASV 3.01.</text>
83: 
84:   <circle cx="100" cy="100" r="30"
85:     style="fill: #FF0; stroke: #00C; stroke-dasharray: 5,5"/>
86: 
87:   <circle id="kreis" cx="100" cy="100" r="30" style="fill: #FF0; stroke: #00C">
88:     <animate attributeName="cx" attributeType="XML" from="100" to="400" dur="20s"
89:       fill="freeze" begin="click" onbegin="AnimBegin()" onend="AnimEnd()"/>
90:   </circle>
91: 
92:   <line id="linie" x1="100" y1="100" x2="100" y2="100" style="stroke: #F00"/>
93: 
94:   <text id="cxout" x="20" y="105" style="fill: #F00">cx=???</text>
95: 
96:   <text x="20" y="160">[Zum Starten der Animation den Kreis anklicken!]</text>
97: 
98: </svg>

[zum Anfang]