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 相关文章推荐
用js判断用户浏览器是否是XP SP2的IE6
Mar 08 Javascript
JQuery与iframe交互实现代码
Dec 24 Javascript
Js动态添加复选框Checkbox的实例方法
Apr 08 Javascript
阻止事件(取消浏览器对事件的默认行为并阻止其传播)
Nov 03 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
微信小程序自定义多选事件的实现代码
May 17 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
May 30 Javascript
ng-events类似ionic中Events的angular全局事件
Sep 05 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
Jul 22 Javascript
Vue的状态管理vuex使用方法详解
Feb 05 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
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
PHP的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
十幅图告诉你什么是PHP引用
2015/02/22 PHP
PHP安全上传图片的方法
2015/03/21 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
2019/10/11 PHP
htm调用JS代码
2007/03/15 Javascript
jquery中动态效果小结
2010/12/16 Javascript
javascript实现获取cookie过期时间的变通方法
2014/08/14 Javascript
快速学习JavaScript的6个思维技巧
2015/10/13 Javascript
MVC Ajax Helper或Jquery异步加载部分视图
2015/11/29 Javascript
轻松搞定jQuery.noConflict()
2016/02/15 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
Vue项目中跨域问题解决方案
2018/06/05 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
[03:01]2014DOTA2国际邀请赛 小组赛7月13日TOPPLAY
2014/07/14 DOTA
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python制作简易注册登录系统
2016/12/15 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
Python 分布式缓存之Reids数据类型操作详解
2020/06/24 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
应届生程序员求职信
2013/11/05 职场文书
心理学专业毕业生推荐信范文
2013/11/21 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
材料员岗位职责范本
2015/04/11 职场文书
病假证明模板
2015/06/19 职场文书