SVG – Learning by Coding

[ rcc-simplebutton.svg --> Grafik anzeigen ]

  1: 
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
  2: 
<!--

  3: 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.2//EN" 

  4: 
  "http://www.w3.org/Graphics/SVG/1.2/DTD/svg12.dtd">

  5: 
-->

​  6:   7: 
<!-- SVG Learning by Coding http://www.datenverdrahten.de/svglbc/ -->

  8: 
<!--    AuthorDrThomas Meinike 05/04 thomas@handmadecode.de     -->

​  9:  10: 
<svg xmlns="http://www.w3.org/2000/svg" version="1.2"

 11: 
     xmlns:xlink="http://www.w3.org/1999/xlink"

 12: 
     xmlns:ev="http://www.w3.org/2001/xml-events"

 13: 
     xmlns:svglbc="http://www.datenverdrahten.de/svglbc">

​ 14:  15: 
  <title>SVG Learning by Coding</title>

 16: 
  <desc>SVG-Spezifikation in Beispielen</desc>

​ 17:  18: 
  <defs>

​ 19:  20: 
    <script type="text/javascript">

 21: 
      <![CDATA[

​ 22:  23: 
      function SetOp(evt,op)

 24: 
      {

 25: 
        var obj,cnodes,i;

 26: 
        obj=evt.target.parentNode;

 27: 
        cnodes=obj.childNodes;

 28: 
        for(i=0;i<cnodes.length;i++)

 29: 
        {

 30: 
          if(cnodes.item(i).nodeType==1)cnodes.item(i).setAttribute("opacity",op);

 31: 
        }

 32: 
      }

​ 33:  34: 
      ]]>

 35: 
    </script>

​ 36:  37: 
  </defs>

​ 38:  39: 
  <extensionDefs namespace="http://www.datenverdrahten.de/svglbc">

​ 40:  41: 
    <elementDef name="simplebutton">

​ 42:  43: 
      <prototype>

​ 44:  45: 
        <!-- Gruppe aus zwei Rechtecken und einem Textelement -->

 46: 
        <g>

 47: 
          <rect id="unten"/>

 48: 
          <rect id="oben"/>

 49: 
          <text id="txt"><refContent/></text>

 50: 
        </g>

​ 51:  52: 
      </prototype>

​ 53:  54: 
      <script ev:event="SVGBindEnd" type="text/javascript">

 55: 
        <![CDATA[     

​ 56:  57: 
        var ver=getSVGViewerVersion();

​ 58:  59: 
        if(ver.indexOf("Adobe")!=-&& ver.indexOf("6.0")!=-1)

 60: 
        {

 61: 
          var svgdoc,el,st,ru,ro,tx,x,y,bb,bh,bf,th,tf,at;

​ 62:  63: 
          // Daten zum aktuellen simplebutton-Element abfragen

 64: 
          el=evt.target;

 65: 
          st=el.shadowTree;

​ 66:  67: 
          ru=st.getElementById("unten");

 68: 
          ro=st.getElementById("oben");

 69: 
          tx=st.getElementById("txt");

​ 70:  71: 
          x=el.getAttribute("x");   // Button-x

 72: 
          y=el.getAttribute("y");   // Button-y

 73: 
          bb=el.getAttribute("bb"); // Button-Breite

 74: 
          bh=el.getAttribute("bh"); // Button-Hoehe

 75: 
          bf=el.getAttribute("bf"); // Button-Farbe

 76: 
          th=el.getAttribute("th"); // Text-Hoehe

 77: 
          tf=el.getAttribute("tf"); // Text-Farbe

 78: 
          at=el.getAttribute("at"); // Alert-Text (onclick)

​ 79:  80: 
          // Rechteck - unten

 81: 
          ru.setAttribute("x",parseFloat(x)+parseFloat(bb)/35);

 82: 
          ru.setAttribute("y",parseFloat(y)+parseFloat(bb)/35);

 83: 
          ru.setAttribute("width",bb);

 84: 
          ru.setAttribute("height",bh);

 85: 
          ru.setAttribute("rx","5");

 86: 
          ru.setAttribute("fill","#CCC");

​ 87:  88: 
          // Rechteck - oben

 89: 
          ro.setAttribute("x",x);

 90: 
          ro.setAttribute("y",y);

 91: 
          ro.setAttribute("width",bb);

 92: 
          ro.setAttribute("height",bh);

 93: 
          ro.setAttribute("fill",bf);

 94: 
          ro.setAttribute("rx","5");

 95: 
          ro.setAttribute("onclick","alert('"+at+"')");

 96: 
          ro.setAttribute("onmouseover","SetOp(evt,0.5)");

 97: 
          ro.setAttribute("onmouseout","SetOp(evt,1.0)");

​ 98:  99: 
          // Buttontext

100: 
          tx.setAttribute("fill",tf);

101: 
          tx.setAttribute("font-size",th);

102: 
          tx.setAttribute("text-anchor","middle");

103: 
          tx.setAttribute("pointer-events","none");

104: 
          tx.setAttribute("x",parseFloat(x)+parseFloat(bb)/2);

105: 
          tx.setAttribute("y",parseFloat(y)+parseFloat(bh)/2+parseFloat(th)/3);

106: 
        }

​107: 108: 
        ]]>

109: 
      </script>

​110: 111: 
    </elementDef>

​112: 113: 
  </extensionDefs>

​114: 115: 
  <text x="20" y="30" style="fill: #000; font-size: 24px">

116: 
    RCC Rendering Custom Content (ASV 6.0)</text>

117: 
  <text x="20" y="50">[sonst erscheint keine Ausgabe]</text>

118: 
  <a xlink:href="bilder/rcc-simplebutton.gif" target="svgbox">

119: 
    <text x="350" y="50" style="fill: #F00">Ergebnis als Rastergrafik ...

120: 
      <set attributeName="fill" attributeType="CSS" to="#00C" begin="mouseover"/>

121: 
      <set attributeName="fill" attributeType="CSS" to="#F00" begin="mouseout"/>

122: 
    </text>

123: 
  </a>

​124: 125: 
  <!-- Aufruf der selbst definierten Element-Objekte -->

126: 
  <svglbc:simplebutton x="20" y="110" bb="100" bh="50" bf="#FCC"

127: 
    tf="#000" th="12" at="Hallo Button 1!">Text 1</svglbc:simplebutton>

128: 
  <svglbc:simplebutton x="170" y="90" bb="180" bh="90" bf="#CFC"

129: 
    tf="#00C" th="36" at="Hallo Button 2!">Text 2</svglbc:simplebutton>

130: 
  <svglbc:simplebutton x="100" y="230" bb="150" bh="80" bf="#CCF"

131: 
    tf="#C00" th="24" at="Hallo Button 3!">Text 3</svglbc:simplebutton>

​132: 133: 
</svg>

[zum Anfang]