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 相关文章推荐
减少访问DOM的次数提升javascript性能
Feb 24 Javascript
Js冒泡事件详解及阻止示例
Mar 21 Javascript
html文档中的location对象属性理解及常见的用法
Aug 13 Javascript
JavaScript中setUTCFullYear()方法的使用简介
Jun 12 Javascript
JS实现在状态栏显示打字效果完整实例
Nov 02 Javascript
JS实现点击事件统计的简单实例
Jul 10 Javascript
angularjs 实现带查找筛选功能的select下拉框实例
Jan 11 Javascript
理顺8个版本vue的区别(小结)
Sep 17 Javascript
koa2实现登录注册功能的示例代码
Dec 03 Javascript
node.js使用net模块创建服务器和客户端示例【基于TCP协议】
Feb 14 Javascript
JavaScript 严格模式(use strict)用法实例分析
Mar 04 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 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
thinkPHP学习笔记之安装配置篇
2015/03/05 PHP
Yii中实现处理前后台登录的新方法
2015/12/28 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
2011/02/22 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
jQuery实现图片轮播效果代码
2016/09/27 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
2018/05/05 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
2018/07/12 Javascript
Vue使用Canvas绘制图片、矩形、线条、文字,下载图片
2019/04/26 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
详解Python中的type()方法的使用
2015/05/21 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
matplotlib基础绘图命令之bar的使用方法
2020/08/13 Python
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
Perfume’s Club英国官网:购买香水和护肤品
2019/11/02 全球购物
介绍一下SQL中union,intersect和minus
2012/04/05 面试题
通信工程专业女生个人求职信
2013/09/21 职场文书
汉语言文学毕业生求职信
2013/10/01 职场文书
小学生自我鉴定
2013/10/12 职场文书
公司租车协议书
2015/01/29 职场文书
小学运动会加油词
2015/07/18 职场文书
获奖感言怎么写
2015/07/31 职场文书
干部外出学习心得体会
2016/01/18 职场文书
python3 字符串str和bytes相互转换
2022/03/23 Python
MySql按时,天,周,月进行数据统计
2022/08/14 MySQL