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 相关文章推荐
判断控件是否已加载完成的代码
Feb 24 Javascript
juqery 学习之四 筛选过滤
Nov 30 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
Dec 15 Javascript
js如何设置在iframe框架中指定div不显示
Dec 04 Javascript
浅谈JS运算符&amp;&amp;和|| 及其优先级
Aug 10 Javascript
深入理解JS继承和原型链的问题
Dec 17 Javascript
bootstrap基本配置_动力节点Java学院整理
Jul 14 Javascript
安装vue-cli报错 -4058 的解决方法
Oct 19 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
Sep 03 Javascript
原生JS检测CSS3动画是否结束的方法详解
Jan 27 Javascript
vue实现给div绑定keyup的enter事件
Jul 31 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
php可生成缩略图的文件上传类实例
2014/12/17 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
PHP生成json和xml类型接口数据格式
2015/05/17 PHP
getElementById在任意一款浏览器中都可以用吗的疑问回复
2007/05/13 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
AngularJS内置指令
2015/02/04 Javascript
AngularJS基础知识笔记之过滤器
2015/05/10 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
解决vue项目中页面调用数据 在数据加载完毕之前出现undefined问题
2019/11/14 Javascript
[01:20]DOTA2上海特级锦标赛现场采访:谁的ID最受青睐
2016/03/25 DOTA
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
Python3远程监控程序的实现方法
2019/07/15 Python
pytorch标签转onehot形式实例
2020/01/02 Python
python selenium xpath定位操作
2020/09/01 Python
CSS3 border-radius圆角的实现方法及用法详解
2020/09/14 HTML / CSS
html5画布旋转效果示例
2014/01/27 HTML / CSS
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
公司综合部的成员自我评价分享
2013/11/05 职场文书
如何编写优秀的食品项目创业计划书
2014/01/23 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
竞选学生会演讲稿
2014/04/25 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
学习十八大宣传标语
2014/10/09 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
js Proxy的原理详解
2021/05/25 Javascript