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


Posted in Javascript onMay 16, 2016

什么是SVG?

SVG 指可伸缩矢量图形 (Scalable Vector Graphics)

SVG 用来定义用于网络的基于矢量的图形

SVG 使用 XML 格式定义图形

SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失

SVG 是万维网联盟的标准

SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

简介:

SVG.js是一个轻量级的JavaScript库,允许你轻松操作SVG和定义动画。

SVG(Scalable Vector Graphics,可缩放矢量图形)是基于XML、用于描述二维矢量图形的一种图形格式。SVG由W3C制定,是一个开放标准。

SVG.js中包含了大量用于定义动画的方法,如移动、缩放、旋转、倾斜等,具体可参阅相关演示。

SVG.js中的一些亮点:

•易读的简洁的语法

•非常轻量,gzip压缩版只有5k

•针对大小、位置、颜色等的动画元素

•模块化结构,轻松扩展

•各种实用插件

•各种形状类型间拥有统一的API.

•元素可以绑定事件,包括触摸事件

•完全支持不透明蒙版

•元素组

•动态渐变

•填充模式

•完整的文档记录

使用说明:

创建一个SVG文档

使用SVG()函数来在一个给定的html元素中创建一个SVG文档:

var draw = SVG('canvas').size(300, 300)
var rect = draw.rect(100, 100).attr({ fill: '#f06' })

其中SVG()中的参数可以使一个元素的id或者元素本身。

以上两句将在html文档中产生以下代码:

<div id="canvas">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="300">
<rect width="100" height="100" fill="#f06"></rect>
</svg>
</div>

当然,要定义SVG画布的大小,除了使用像素之外,也可以使用百分比的。如下:

var draw = SVG('canvas').size('100%', '100%')

检测浏览器对SVG的支持度

在使用svg.js之前,可以先用以下的代码来检测浏览器对svg.js这个库的支持情况:

if (SVG.supported) { 
var draw = SVG('canvas') 
var rect = draw.rect(100,100) } 
else { 
alert('SVG not supported') }

ViewBox

<svg>的属性可以用viewbox()方法来确定,viewbox()方法就像是一个setter函数一样,如下所示:

draw.viewbox(0,0,297,210)

上面的一行代码和下面的一行代码是等价的,前两个参数表示<svg>的位置,后两个是其宽度和高度。

draw.viewbox({ x: 0, y: 0, width: 297, height: 210 })

如果没有任何参数,那么viewbox就直接返回一个空的<svg>:

var box = draw.viewbox()

viewbox() 方法可以有zoom属性,

var box = draw.viewbox() var zoom = box.zoom

如果viewbox中的<svg>的大小和实际的SVG画布的大小相同,那么zoom的值就是1.

SVG 文档

svg.js也可以在htmlDOM外工作,如下所示,是一个独立的svg文件,就像是外部的js文件一样。

<?xml version="1.0" encoding="utf-8" ?> 
<svg id="viewport"xmlns="http://www.w3.org/2000/svg"xmlns:xlink="http://www.w3.org/1999/xlink"version="1.1"> 
<script type="text/javascript"xlink:href="svg.min.js">
</script> 
<scripttype="text/javascript"> 
<![CDATA[ 
var draw = SVG('viewport') 
draw.rect(100,100).animate().fill('#f03').move(100,100) 
]]> 
</script> 
</svg>

以上所述是小编给大家介绍的Svg.js实例教程及使用手册详解(一)的内容,下面将持续更新svg.js的其他方法的用法,敬请关注!

Javascript 相关文章推荐
javascript 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
document.compatMode介绍
May 21 Javascript
JQuery 解析多维的Json数据格式
Nov 02 Javascript
Javascript的并行运算实现代码
Nov 19 Javascript
jquery随意添加移除html的实现代码
Jun 21 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
Feb 17 Javascript
基于JS实现移动端向左滑动出现删除按钮功能
Feb 22 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
Sep 23 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
Feb 20 Javascript
vue实现户籍管理系统
May 29 Javascript
vue 使用原生组件上传图片的实例
Sep 08 Javascript
限制只能输入数字的实现代码
May 16 #Javascript
JavaScript开发Chrome浏览器扩展程序UI的教程
May 16 #Javascript
基于javascript实现最简单的选项卡切换效果
May 16 #Javascript
JavaScript实现页面跳转的方式汇总
May 16 #Javascript
js实现页面跳转的几种方法小结
May 16 #Javascript
WebApi+Bootstrap+KnockoutJs打造单页面程序
May 16 #Javascript
KnockoutJs快速入门教程
May 16 #Javascript
You might like
Ajax PHP 边学边练 之三 数据库
2009/11/26 PHP
php实现的双色球算法示例
2017/06/20 PHP
php判断IP地址是否在多个IP段内
2020/08/18 PHP
DWR Ext 加载数据
2009/03/22 Javascript
JavaScript继承方式实例
2010/10/29 Javascript
jQuery 下拉列表 二级联动插件分享
2012/03/29 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
2012/06/20 Javascript
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
EasyUi combotree 实现动态加载树节点
2016/04/01 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
bootstrap-Treeview实现级联勾选
2017/11/23 Javascript
Javascript 编码约定(编码规范)
2018/03/11 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
微信小程序8种数据通信的方式小结
2020/02/03 Javascript
js实现电灯开关效果
2021/01/19 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
2018/10/14 Python
解决vscode python print 输出窗口中文乱码的问题
2018/12/03 Python
详解python编译器和解释器的区别
2019/06/24 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
学生档案自我鉴定
2013/10/07 职场文书
环保专业大学生职业规划设计
2014/01/10 职场文书
小学英语教学反思
2014/01/30 职场文书
个人整改方案范文
2014/10/25 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
新手初学Java List 接口
2021/07/07 Java/Android