Svg.Js 简介(转)
什么是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中的一些亮点: 官网:http://svgjs.com/,Git源代码地址:https://github.com/svgdotjs/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 基础图形绘制整理(一)
一.矩形 //指定width和height 画矩形 //返回rect对象 var draw = SVG('svg1').size(300, 300); var rect = draw.rect(100 ...
- Svg.Js 父类的基础操作
一.SVG.Doc 创建SVG文档 var draw = SVG('drawing') <div id="svg1"></div> <script&g ...
- Svg.Js A标签,链接操作
一.创建a标签,为a标签添加内容 <div id="svg1"></div> <script> //SVG.A 链接创建 var draw = ...
- 前端技术-svg简介与snap.svg.js开源项目的使用
前言-为什么学习snap.svg.js 前阵子webAPP的技术群里有人感觉到svg+animate的形式感觉很炫,矢量图任意放大且不需要下载图片,并且在手机端效果流畅. (矢量图与位图最大的区别是, ...
- svg.js教程及使用手册详解(一)
做毕设的时候,因为要使用到画图和自定义动画,所以接触到了SVG.网上关于SVG和Canvas的对比很多,具体的辨析这里就不赘言.网上关于SVG的所谓教程基本上都是SVG本身,但是却没有一个针对svg. ...
- svg.js教程及使用手册详解(二)
上篇简要介绍了svg.js的基本信息和基本用法,这篇开始详细讲解svg.js的用法. SVG元素 SVG元素主要包括各种形状.线条.文本.路径. 矩形——Rect Rects有两个参数,即矩形的宽度和 ...
- prototype.js简介
prototype.js简介 2007-11-21 14:22 prototype.js是一个很强大的Javascript函数库,它可以让你很轻松的使用一些特效,实现AJAX的功能.虽然prototy ...
- HTML基础--JS简介、基本语法、类型转换、变量、运算符、分支语句、循环语句、数组、函数、函数调用.avi
JS简介 1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司(已被Oracle收 ...
- 01 Node.js简介, 安装&配置
Node.js 简介 Node.js 是什么 Node.js 有着强大而灵活的包管理器(node package manager,npm) 目前, 已经有强大第三方工具模块, 例如数据库连接, 网站开 ...
随机推荐
- JS代码浏览器兼容性 之 new Date()
这里只测试3个浏览器的情况:IE, 火狐,谷歌. 一. 无参 //无参 var dateTime = new Date(); 所有浏览器都兼容,GOOD 二. 日期参数 //日期参数 格式1 var ...
- 【Android Studio】为Android Studio设置HTTP代理
[Android Studio]为Android Studio设置HTTP代理 大陆的墙很厚很高,初次安装Android Studio下载SDK等必定失败,设置代理方法如下: 1. 到androi ...
- q.size()
在队列中,q.empty()比q.size()要慢,如果可能就用q.size(); 比如spfa的 while(q.size()>0) better than while(!q.empty())
- mybatis3中@SelectProvider的使用技巧
mybatis的原身是ibatis,现在已经脱离了apache基金会,新官网是http://www.mybatis.org/. mybatis3中增加了使用注解来配置Mapper的新特性,本篇文章主要 ...
- 019.Zabbix的Trigger及相关函数
一 告警简介 告警指将达到某一个阀值事件的消息发送给用户,让用户在事件发生的时候即可知道监控项处于不正常状态,从而采取相应的措施.在Zabbix中,高进是由一系列的流程组成,首先是触发器达到阀值,接下 ...
- UML用例图之间的关系
在画用例图的时候,理清用例之间的关系是重点.用例的关系有泛化(generalization).扩展(extend)和包含(include).其中include和extend最易混淆.下面我们结合实例彻 ...
- 系统的Drawable(四)-LayerListDrawable
系统的Drawable(四)-LayerListDrawable 学习自 https://blog.csdn.net/u014695188/article/details/52815444 Layer ...
- Android之Android WebView常见问题及解决方案汇总
如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变 ...
- 2015-2016 Petrozavodsk Winter Training Camp, Nizhny Novgorod SU Contest (5/9)
2015-2016 Petrozavodsk Winter Training Camp, Nizhny Novgorod SU Contest B. Forcefield 题意 给你一维平面上n个镜子 ...
- python调用oracle存储过程(packeage)
http://markmail.org/message/y64t5mqlgy4rogte http://www.oracle.com/technetwork/cn/articles/prez-stor ...