摘要:是一款由奇舞團開源的跨終端繪圖框架,可以基于快速繪制結(jié)構(gòu)化動畫和交互效果,并發(fā)布到任何擁有環(huán)境的平臺上比如瀏覽器小程序和。有如下特點基于繪制的文檔對象模型四種基本精靈類型支持基礎(chǔ)和高級的精靈屬性,精靈盒模型屬性與具有高度一致性。
SpriteJS 是一款由360奇舞團開源的跨終端 canvas 繪圖框架,可以基于 canvas 快速繪制結(jié)構(gòu)化 UI、動畫和交互效果,并發(fā)布到任何擁有canvas環(huán)境的平臺上(比如瀏覽器、小程序和node)。
官方網(wǎng)站:http://spritejs.org
Github地址:https://github.com/spritejs/s...
DEMO示例:http://spritejs.org/demo/
為什么要開發(fā) SpriteJS我們知道,canvas API可以很靈活地繪制各種矢量圖形到畫布上,但是 canvas API 本身比較低級,比如我們要在畫布中央繪制一個帶有圓角的紅色矩形,使用 canvas 原生的 API,需要這樣:
const canvas = document.getElementById("paper") const context = canvas.getContext("2d") const [x, y, w, h, r] = [200, 200, 200, 200, 50] context.fillStyle = "red" context.beginPath() context.moveTo(x + r, y) context.arcTo(x + w, y, x + w, y + h, r) context.arcTo(x + w, y + h, x, y + h, r) context.arcTo(x, y + h, x, y, r) context.arcTo(x, y, x + w, y, r) context.closePath() context.fill()
如果實現(xiàn)相同的效果,使用 SpriteJS 是這樣寫:
const scene = new spritejs.Scene("#container") const layer = scene.layer() const s = new spritejs.Sprite({ anchor: 0.5, bgcolor: "red", pos: [300, 300], size: [200, 200], borderRadius: 50, }) layer.append(s)
Sprite 為圖形創(chuàng)建類似于 DOM 的對象模型,因此我們可以像創(chuàng)建 DOM 元素一樣,創(chuàng)建 Sprite 元素,并將它們 append 到 layer 上,從而將元素呈現(xiàn)到畫布上。SpriteJS 有如下特點:
基于 canvas 繪制的文檔對象模型
四種基本精靈類型:Sprite、Path、Label、Group
支持基礎(chǔ)和高級的精靈屬性,精靈盒模型、屬性與 CSS3 具有高度一致性。
簡便而強大的 Transition、Animation API
支持雪碧圖和資源預(yù)加載
可擴展的事件機制
高性能的緩存策略
對 D3、Matter-js、Proton和其他第三方庫友好
跨平臺,支持服務(wù)端渲染、微信小程序
基本使用介紹通過 NPM 或者直接加載 CDN 版本即可使用 SpriteJS
npm install spritejs —save
注:在服務(wù)端使用需要安裝 node-canvas
下面是簡單的用法示例,大家也可以直接訪問 JSBin 查看效果。
const {Scene, Sprite} = spritejs const scene = new Scene("#demo-quickStart", {viewport: [770, 200], resolution: [3080, 800]}) const layer = scene.layer() const robot = new Sprite("https://p5.ssl.qhimg.com/t01c33383c0e168c3c4.png") robot.attr({ anchor: [0, 0.5], pos: [0, 0], }) robot.animate([ {pos: [0, 0]}, {pos: [0, 300]}, {pos: [2700, 300]}, {pos: [2700, 0]}, ], { duration: 5000, iterations: Infinity, direction: "alternate", }) layer.append(robot)文檔
齊全的使用文檔:中文 | EN
各種各樣的例子
詳細的 API 文檔
原博文 SpriteJS -- Canvas動畫從未如此簡單
要深入了解 SpriteJS 或者希望給 SpriteJS 貢獻代碼,可以關(guān)注我們的 GitHub倉庫,大家的寶貴 star 是對我們最大的鼓勵和支持。如果對 SpriteJS 有疑問,或者需要了解進一步細節(jié),可以加入 SpriteJS 官方QQ群:
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/116749.html
摘要:是一款由奇舞團開源的跨終端繪圖框架,可以基于快速繪制結(jié)構(gòu)化動畫和交互效果,并發(fā)布到任何擁有環(huán)境的平臺上比如瀏覽器小程序和。有如下特點基于繪制的文檔對象模型四種基本精靈類型支持基礎(chǔ)和高級的精靈屬性,精靈盒模型屬性與具有高度一致性。 SpriteJS 是一款由360奇舞團開源的跨終端 canvas 繪圖框架,可以基于 canvas 快速繪制結(jié)構(gòu)化 UI、動畫和交互效果,并發(fā)布到任何擁有ca...
摘要:也是一款優(yōu)秀的響應(yīng)式框架站點所使用的一套框架為微信服務(wù)量身設(shè)計的一套框架一組很小的,響應(yīng)式的組件,你可以在網(wǎng)頁的項目上到處使用一個可定制的文件,使瀏覽器呈現(xiàn)的所有元素,更一致和符合現(xiàn)代標準。 GitHub 值得收藏的前端項目 整理與收集的一些比較優(yōu)秀github項目,方便自己閱讀,順便分享出來,大家一起學習,本篇文章會持續(xù)更新,版權(quán)歸原作者所有。歡迎github star與fork 預(yù)...
摘要:年,軟件開發(fā)界發(fā)生了很多變化。六數(shù)據(jù)存儲是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典公司開發(fā),目前屬于旗下公司。最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在應(yīng)用方面是最好的,關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件之一。七是最新的修訂版本,年月由萬維網(wǎng)聯(lián)盟完成標準制定。 2015年,軟件開發(fā)界發(fā)生了很多變化。有很多流行的新語言發(fā)布了,也有很多重要的框架和工具發(fā)布了新版本。下面有一個我們覺得最重要的簡短清單,同時也有我們覺...
摘要:年,軟件開發(fā)界發(fā)生了很多變化。六數(shù)據(jù)存儲是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典公司開發(fā),目前屬于旗下公司。最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在應(yīng)用方面是最好的,關(guān)系數(shù)據(jù)庫管理系統(tǒng)應(yīng)用軟件之一。七是最新的修訂版本,年月由萬維網(wǎng)聯(lián)盟完成標準制定。 2015年,軟件開發(fā)界發(fā)生了很多變化。有很多流行的新語言發(fā)布了,也有很多重要的框架和工具發(fā)布了新版本。下面有一個我們覺得最重要的簡短清單,同時也有我們覺...
閱讀 3079·2021-10-27 14:16
閱讀 2887·2021-09-24 10:33
閱讀 2295·2021-09-23 11:21
閱讀 3237·2021-09-22 15:14
閱讀 827·2019-08-30 15:55
閱讀 1688·2019-08-30 15:53
閱讀 1763·2019-08-29 11:14
閱讀 2196·2019-08-28 18:11