- SVG 演示
- SVG - 装载机
- SVG - 对话框
- SVG-图标
- SVG - 时钟
- SVG - 拖动
- SVG - 关键点
- SVG - 地图
- SVG-amChart
- SVG - 图形
- SVG - 平面阴影
- SVG - 图像过滤器
- SVG - 文本效果
- SVG - 带有 CSS 效果的文本
- SVG - 箭头效果
- SVG - 品牌效应
- SVG - 粘糊糊的效果
- SVG - 渐变效果
- SVG - 有趣的效果
- SVG - 滚动效果
- SVG - 副秀效果
- SVG - 选项卡效果
- SVG - Raphael.js 效果
- SVG - Velocity.js 效果
- SVG - Walkway.js 效果
- SVG - zPath.js 效果
- SVG - Vague.js 效果
- SVG - 变换效果
- SVG - 全屏叠加效果
- SVG - Lazylinepainter.js 效果
- SVG - 演示游戏
- SVG - 实时 SVG AD
- SVG 有用资源
- SVG - 问题与解答
- SVG - 快速指南
- SVG - 有用的资源
- SVG - 讨论
SVG-交互性
SVG 图像可以响应用户操作。SVG 支持指针事件、键盘事件和文档事件。考虑以下示例。
例子
测试SVG.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 事件来调用 javascript 函数。
在javascript函数中,document代表SVG文档,可用于获取SVG元素。
在 javascript 函数中,事件代表当前事件,可用于获取引发事件的目标元素。
输出
在 Chrome Web 浏览器中打开 textSVG.htm。您可以使用Chrome/Firefox/Opera直接查看SVG图像,无需任何插件。Internet Explorer 9 及更高版本还支持 SVG 图像渲染。单击每个文本和矩形即可查看结果。