Svg.js實(shí)例教程及使用手冊(cè)詳解(一)
什么是SVG?
SVG 指可伸縮矢量圖形 (Scalable Vector Graphics)
SVG 用來(lái)定義用于網(wǎng)絡(luò)的基于矢量的圖形
SVG 使用 XML 格式定義圖形
SVG 圖像在放大或改變尺寸的情況下其圖形質(zhì)量不會(huì)有所損失
SVG 是萬(wàn)維網(wǎng)聯(lián)盟的標(biāo)準(zhǔn)
SVG 與諸如 DOM 和 XSL 之類(lèi)的 W3C 標(biāo)準(zhǔn)是一個(gè)整體
簡(jiǎn)介:
SVG.js是一個(gè)輕量級(jí)的JavaScript庫(kù),允許你輕松操作SVG和定義動(dòng)畫(huà)。
SVG(Scalable Vector Graphics,可縮放矢量圖形)是基于XML、用于描述二維矢量圖形的一種圖形格式。SVG由W3C制定,是一個(gè)開(kāi)放標(biāo)準(zhǔn)。
SVG.js中包含了大量用于定義動(dòng)畫(huà)的方法,如移動(dòng)、縮放、旋轉(zhuǎn)、傾斜等,具體可參閱相關(guān)演示。
SVG.js中的一些亮點(diǎn):
•易讀的簡(jiǎn)潔的語(yǔ)法
•非常輕量,gzip壓縮版只有5k
•針對(duì)大小、位置、顏色等的動(dòng)畫(huà)元素
•模塊化結(jié)構(gòu),輕松擴(kuò)展
•各種實(shí)用插件
•各種形狀類(lèi)型間擁有統(tǒng)一的API.
•元素可以綁定事件,包括觸摸事件
•完全支持不透明蒙版
•元素組
•動(dòng)態(tài)漸變
•填充模式
•完整的文檔記錄
使用說(shuō)明:
創(chuàng)建一個(gè)SVG文檔
使用SVG()函數(shù)來(lái)在一個(gè)給定的html元素中創(chuàng)建一個(gè)SVG文檔:
var draw = SVG('canvas').size(300, 300)
var rect = draw.rect(100, 100).attr({ fill: '#f06' })
其中SVG()中的參數(shù)可以使一個(gè)元素的id或者元素本身。
以上兩句將在html文檔中產(chǎn)生以下代碼:
<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>
當(dāng)然,要定義SVG畫(huà)布的大小,除了使用像素之外,也可以使用百分比的。如下:
var draw = SVG('canvas').size('100%', '100%')
檢測(cè)瀏覽器對(duì)SVG的支持度
在使用svg.js之前,可以先用以下的代碼來(lái)檢測(cè)瀏覽器對(duì)svg.js這個(gè)庫(kù)的支持情況:
if (SVG.supported) {
var draw = SVG('canvas')
var rect = draw.rect(100,100) }
else {
alert('SVG not supported') }
ViewBox
<svg>的屬性可以用viewbox()方法來(lái)確定,viewbox()方法就像是一個(gè)setter函數(shù)一樣,如下所示:
draw.viewbox(0,0,297,210)
上面的一行代碼和下面的一行代碼是等價(jià)的,前兩個(gè)參數(shù)表示<svg>的位置,后兩個(gè)是其寬度和高度。
draw.viewbox({ x: 0, y: 0, width: 297, height: 210 })
如果沒(méi)有任何參數(shù),那么viewbox就直接返回一個(gè)空的<svg>:
var box = draw.viewbox()
viewbox() 方法可以有zoom屬性,
var box = draw.viewbox() var zoom = box.zoom
如果viewbox中的<svg>的大小和實(shí)際的SVG畫(huà)布的大小相同,那么zoom的值就是1.
SVG 文檔
svg.js也可以在htmlDOM外工作,如下所示,是一個(gè)獨(dú)立的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實(shí)例教程及使用手冊(cè)詳解(一)的內(nèi)容,下面將持續(xù)更新svg.js的其他方法的用法,敬請(qǐng)關(guān)注!
相關(guān)文章
JavaScript用Number方法實(shí)現(xiàn)string轉(zhuǎn)int
parseInt方法在format'00'開(kāi)頭的數(shù)字時(shí)會(huì)當(dāng)作2進(jìn)制轉(zhuǎn)10進(jìn)制,所以建議string轉(zhuǎn)int最好用Number方法2014-05-05
小程序組件傳值和引入sass的方法(使用vant Weapp組件庫(kù))
這篇文章主要介紹了小程序組件傳值和引入sass使用vant Weapp組件庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
動(dòng)態(tài)的9*9乘法表效果的實(shí)現(xiàn)代碼
下面小編就為大家?guī)?lái)一篇?jiǎng)討B(tài)的9*9乘法表效果的實(shí)現(xiàn)代碼。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧2016-05-05
利用hasOwnProperty給數(shù)組去重的面試題分享
obj.hasOwnProperty(attr) 判斷是否是原型中的屬性,false就是原型中的屬性,下面這篇文章主要給大家介紹了一道利用hasOwnProperty給數(shù)組去重的面試題,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2018-11-11
Javascript中的return作用及javascript return關(guān)鍵字用法詳解
本文給大家介紹Javascript中的return作用及javascript return關(guān)鍵字用法詳解,對(duì)于大家學(xué)習(xí)javascript中的return知識(shí)有所幫助,感興趣的朋友一起學(xué)習(xí)吧2015-11-11
編寫(xiě)針對(duì)IE的JS代碼兩種編寫(xiě)方法
有些時(shí)候我們需要針對(duì)某些IE下的兼容性寫(xiě)單獨(dú)的JS處理代碼,這只是簡(jiǎn)簡(jiǎn)單單為了兼容行啊,有多種方法可以實(shí)現(xiàn),小編整理了一下,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-01-01
JavaScript獲取當(dāng)前時(shí)間向前推三個(gè)月的方法示例
這篇文章主要介紹了JavaScript獲取當(dāng)前時(shí)間向前推三個(gè)月的方法,結(jié)合實(shí)例形式分析了javascript日期與時(shí)間運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2017-02-02

