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 คลิกที่แต่ละข้อความและสี่เหลี่ยมผืนผ้าเพื่อดูผลลัพธ์