SVG实例之电力开关

<?xml version="1.0" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"  width="400" height="200" >
<script>
function lineGClick(evt) {

var lineA = document.getElementById("lineA");
if( lineA.getAttribute("display")=="none"){

lineA.setAttribute("display","#000000");
line2.setAttribute("display","none");

}else{
lineA.setAttribute("display","none");
line2.setAttribute("display","#000000");
}
}
 </script>
<defs>
 <g id="lineG1" >
  <line id="line1" fill="none" stroke="#000000" stroke-width="4" x1="10" y1="10" x2="10" y2="40"/>
  <line id="lineA" fill="none" display="none" stroke="#000000" stroke-width="4" x1="10" y1="40" x2="10" y2="70"/>
  <line id="line2" fill="none" stroke="#000000" stroke-width="4" x1="10" y1="40" x2="35" y2="60"/>
  <line id="lineB" fill="none" stroke="#000000" stroke-width="4" x1="10" y1="70" x2="10" y2="100"/>
 </g>
</defs>

<text x="10" y="20" fill="red">一个SVG电力开关的例子。点击开关,进行状态转换</text>
<use x="10" y="30" xlink:href="#lineG1" onclick="lineGClick(evt)"/>
<a xlink:href="http://www.waylau.com" target="_blank">
<text x="10" y="180" fill="red">欢迎访问wwww.waylau.com</text>
  </a>
</svg>

效果:

解释:

defs标签定义了可以重复利用的组件

use引用了defs所定义的组件,其中onclick监听了鼠标点击事件

时间: 2024-09-20 21:42:39

SVG实例之电力开关的相关文章

SVG实例之中国地图

SVG 做地图具有可以任意比例放大缩小不失真的优点.本例基于d3.js的svg制作. 地图数据用GeoJSON存储.GeoJSON 是基于JSON 的.为Web 应用而编码地理数据的一个标准.实际上,GeoJSON 并不是另一种格式,而只是JSON 非常特定的一种使用方法. 网上有很多免费的GeoJSON下载,本例子中国地图GeoJSon 可以从本例源码 下载 1.获取d3 在项目中引入即可, <script src="http://d3js.org/d3.v3.min.js"&

SVG基本知识

什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失 SVG 是万维网联盟的标准 SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体 SVG 是 W3C 推荐标准 SVG 于 2003 年 1 月 14 日成为 W3C 推荐标准. SVG 的历史 参与定义 SVG 的组织有: Opera.Adobe.M

Web Chart入门(2) Web端图形绘制SVG,VML, HTML5 Canvas简单实例

VML 的用法和实例 引入命名空间之后,就可以直接使用标签的方式绘制图形. 如下例:绘制一条从 坐标(20,20) 到 坐标(200,200) 的直线. <HTML xmlns:v = "urn:schemas-microsoft-com:vml"> <HEAD><TITLE>VML Example</TITLE> <META http-equiv=Content-Type content="text/html; char

Svg.js实例教程及使用手册详解(一)_javascript技巧

什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失 SVG 是万维网联盟的标准 SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体 简介: SVG.js是一个轻量级的JavaScript库,允许你轻松操作SVG和定义动画. SVG(Scalable Vector Graphics,可缩放矢量图形)是基

AJAX + SVG 实现实时监控图表

ajax|监控|图表 AJAX 已经有很多文章介绍它的原理及其应用了.但是遗憾的是现在并没有很多结合实际项目应用.本文结合实际项目中的应用来讲述利用 AJAX 和SVG 技术如何创建各种激动人心的功能,并附带可以运行的例子和源代码. 本文需要一定的 AJAX,SVG 知识和应用经验.当然它们都可以在 ibm.com/developerworks/cn 上找到. 个人对于 AJAX 应用的建议是如果传统的 MVC 能够满足的应用,没有必要使用AJAX来代替,因为这里 AJAX 唯一能带来的好处只是

CSS网页设计实例:网页登陆表单实例

文章简介:网页登陆表单实例. W3cplus从今天刚开推出藤藤练习的CSS3系列.出这个系列主要是为了让同样有着CSS3兴趣的同学更有动力,在这个系列中都是由W3cplus美女成员藤藤每天根据国外搜集的有关psd设计图,然后将设计图通过css3的代码转换成DEMO案例.一是为了自己提高,二是与其他有同样爱好的同学一起分享.如果你喜欢,那就持续关注w3cplus的有关更新. 这个案例主要制作的是一个登录表单,在这个案例中使用了box-shadow.gradient,transform和transi

Web标准发展建议与实例

web|web标准 原文作者:Roger Johansson, 456 Berea Street中文翻译:x5,x5studio   本文由x5授权发布,翻译版权归x5所有     看完文章后欢迎朋友们来论坛本贴处一起讨论学习,刚刚翻译的~~~还请各位大虾多多包含~~~小弟的水平实在有限~~~希望得到各位大虾的指点~ 1. 简介 本文阐述了Web标准是如何使一个开发者建设网站更加的节省时间与金钱,如何使浏览者获得更好的浏览经历,以及他们的原因.同时,讨论中还涉及到一些方法,准则和好的实例用来帮助

XML轻松学习手册(5)XML实例解析

xml 第五章:XML实例解析 提纲: 一:实例效果 二:实例解析 1.定义新标识. 2.建立XML文档. 3.建立相应的HTML文件. XML在不同领域有着广泛的应用,比如在科技领域的MathML,无线通信应用的WML,在网络图象方面的SVG等等,我们这里侧重讨论XML在web上的应用.XML在web上应用主要是利用其强大的数据操作能力.一般用XML配合javascript和asp等服务器端程序,可以实现网络上几乎所有的应用需求. 考虑讲解方便,我们在下面介绍一个简单的实例,不包含服务器端程序

Javascript实例教程:querySelectorAll()方法

文章简介:只要调用querySelectorAll()都会返回一个StaticNodeList对象不管匹配的元素有几个:如果没有匹配,那么StaticNodeList为空.querySelectorAll()和querySelector()一样存在与Document和Element类型上. querySelectorAll()接受和querySelecort()一样的两个参数,即CSS查询和可选的命名空间解析器,但是返回的是所有匹配的节点而非单个.该方法返回一个叫做StaticNodeList的