SVG - การโต้ตอบ

ภาพ SVG สามารถตอบสนองต่อการกระทำของผู้ใช้ SVG รองรับเหตุการณ์ตัวชี้เหตุการณ์แป้นพิมพ์และเหตุการณ์เอกสาร ลองพิจารณาตัวอย่างต่อไปนี้

ตัวอย่าง

testSVG.htm
<html>
   <title>SVG Interactivity</title>
   <body>
      
      <h1>Sample Interactivity</h1>
      
      <svg width="600" height="600">
         <script type="text/JavaScript">
            <![CDATA[
               function showColor() {
                  alert("Color of the Rectangle is: "+
                  document.getElementById("rect1").getAttributeNS(null,"fill"));
               }
               
               function showArea(event){
                  var width = parseFloat(event.target.getAttributeNS(null,"width"));
                  var height = parseFloat(event.target.getAttributeNS(null,"height"));
                  alert("Area of the rectangle is: " +width +"x"+ height);
               }
               
               function showRootChildrenCount() {
                  alert("Total Children: "+document.documentElement.childNodes.length);
               }
            ]]>
         </script>
         
         <g>
            <text x="30" y="50" onClick="showColor()">Click me to show rectangle color.</text>
            
            <rect id="rect1" x="100" y="100" width="200" height="200" 
            stroke="green" stroke-width="3" fill="red" 
            onClick="showArea(event)"/>
            
            <text x="30" y="400" onClick="showRootChildrenCount()">
            Click me to print child node count.</text>
         </g>
      </svg>
   
   </body>
</html>

คำอธิบาย

  • SVG รองรับฟังก์ชัน JavaScript / ECMAScript บล็อกสคริปต์ต้องอยู่ในบล็อก CDATA ให้พิจารณาการสนับสนุนข้อมูลอักขระใน XML

  • องค์ประกอบ SVG รองรับเหตุการณ์เมาส์เหตุการณ์แป้นพิมพ์ เราใช้เหตุการณ์ onClick เพื่อเรียกใช้ฟังก์ชันจาวาสคริปต์

  • ในฟังก์ชันจาวาสคริปต์เอกสารแสดงถึงเอกสาร SVG และสามารถใช้เพื่อรับองค์ประกอบ SVG

  • ในฟังก์ชันจาวาสคริปต์เหตุการณ์แสดงถึงเหตุการณ์ปัจจุบันและสามารถใช้เพื่อรับองค์ประกอบเป้าหมายที่เหตุการณ์ได้รับการยกระดับ

เอาต์พุต

เปิด textSVG.htm ในเว็บเบราว์เซอร์ Chrome คุณสามารถใช้ Chrome / Firefox / Opera เพื่อดูภาพ SVG ได้โดยตรงโดยไม่ต้องใช้ปลั๊กอินใด ๆ Internet Explorer 9 ขึ้นไปยังรองรับการแสดงภาพ SVG คลิกที่แต่ละข้อความและสี่เหลี่ยมผืนผ้าเพื่อดูผลลัพธ์