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 相关文章推荐
jquery改变tr背景色的示例代码
Dec 28 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
Mar 04 Javascript
JavaScript获取DOM元素的11种方法总结
Apr 25 Javascript
轻松掌握JavaScript享元模式
Aug 27 Javascript
js文件中直接alert()中文出来的是乱码的解决方法
Nov 01 Javascript
详解node-ccap模块生成captcha验证码
Jul 01 Javascript
JavaScript反弹动画效果的实现代码
Jul 13 Javascript
Vue.js中的图片引用路径的方式
Jul 28 Javascript
Vue中实现权限控制的方法示例
Jun 07 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
May 03 Javascript
jquery html添加元素/删除元素操作实例详解
May 20 jQuery
限制只能输入数字的实现代码
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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
2012/01/20 PHP
Yii2 RESTful中api的使用及开发实例详解
2016/07/06 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
jQuery 追加元素的方法如append、prepend、before
2014/01/16 Javascript
jQuery Migrate 1.1.0 Released 注意事项
2014/06/14 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
2016/09/20 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
bootstrap表格分页实例讲解
2016/12/30 Javascript
详解node中创建服务进程
2017/05/09 Javascript
vue.js中父组件调用子组件的内部方法示例
2017/10/22 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
2018/02/18 jQuery
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
深入理解javascript prototype的相关知识
2019/09/19 Javascript
vue v-for直接循环数字实例
2019/11/07 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
使用next.js开发网址缩短服务的方法
2020/06/17 Javascript
python浪漫表白源码
2019/04/05 Python
python正则爬取某段子网站前20页段子(request库)过程解析
2019/08/10 Python
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
英语专业学生个人求职信范文
2014/01/06 职场文书
团委竞选演讲稿
2014/04/24 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
公司节能减排方案
2014/05/16 职场文书
2014组织生活会方案
2014/05/19 职场文书
服务承诺书格式
2014/05/21 职场文书
销售队伍口号
2014/06/11 职场文书
节能环保标语
2014/06/12 职场文书
趣味运动会广播稿
2014/09/13 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python
Python Pycharm虚拟下百度飞浆PaddleX安装报错问题及处理方法(亲测100%有效)
2021/05/24 Python
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python