20個(gè)優(yōu)秀的畫(huà)布 Canvas 開(kāi)源項(xiàng)目,鐵子們有需要的可以收藏一下喲
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
前段時(shí)間有部分粉絲私信說(shuō)用html5 可以實(shí)現(xiàn)放煙花效果嗎?可以實(shí)現(xiàn)下紅包雨、大轉(zhuǎn)盤(pán)、九宮格、老虎機(jī)、彩色紙屑慶祝等等這些效果嗎?其實(shí)這些市場(chǎng)上大家都經(jīng)常看見(jiàn)過(guò),小編也發(fā)布相關(guān)的優(yōu)質(zhì)圖文,有興趣的也可以回頭看看: 幾行代碼實(shí)現(xiàn)新年祝福 今天帶著大家知道在 Web 開(kāi)發(fā)中,Canvas 是一個(gè)強(qiáng)大的繪圖技術(shù),可以實(shí)現(xiàn)各種有趣的交互效果和動(dòng)態(tài)圖形。并且分享20個(gè)優(yōu)秀的畫(huà)布 Canvas 開(kāi)源項(xiàng)目,讓大家提供開(kāi)發(fā)靈感和思路,以便更好地探索并應(yīng)用 Canvas 技術(shù)。喜歡的粉絲們點(diǎn)個(gè)贊、先收藏再轉(zhuǎn)發(fā)分享給身邊更多的朋友,最后加個(gè)關(guān)注。 全文大綱
lucky-canvas官網(wǎng):https://100px.net/ Github:https://github.com/buuing/lucky-canvas 基于 TS + Canvas 開(kāi)發(fā)的【大轉(zhuǎn)盤(pán) / 九宮格 / 老虎機(jī)】抽獎(jiǎng)插件, 一套源碼適配多端框架 JS / Vue / React / Taro / UniApp / 微信小程序等, 獎(jiǎng)品 / 文字 / 圖片 / 顏色 / 按鈕均可配置,支持同步 / 異步抽獎(jiǎng), 概率前 / 后端可控, 自動(dòng)根據(jù) dpr 調(diào)整清晰度適配移動(dòng)端。 Excalidraw官網(wǎng):https://excalidraw.com/ Github:https://github.com/excalidraw/excalidraw Excalidraw 是一個(gè)開(kāi)源的在線(xiàn)白板工具,主要用于創(chuàng)建簡(jiǎn)單直觀的圖形和草圖,支持共享和協(xié)作。 特點(diǎn) 以下是 Excalidraw 的主要特點(diǎn):
Excalidraw編輯器(npm包)支持:
fireworks-js官網(wǎng):https://fireworks.js.org/ Github:https://github.com/crashmax-dev/fireworks-js fireworks-js 是一個(gè)基于 Canvas 的動(dòng)畫(huà)庫(kù),用于在網(wǎng)頁(yè)上制作煙花特效。該庫(kù)的特點(diǎn)如下:
該項(xiàng)目提供了多種框架的實(shí)現(xiàn): canvas-editor在線(xiàn)演示:https://hufe.club/canvas-editor/ Github:https://github.com/Hufe921/canvas-editor canvas-editor 是一個(gè)基于 canvas/svg 的富文本編輯器,類(lèi)似 word。其具有以下特點(diǎn):
Luckysheet官網(wǎng):https://dream-num.github.io/LuckysheetDocs/ Github:https://github.com/dream-num/Luckysheet Luckysheet 是一個(gè)純前端基于 Canvas 的類(lèi)似 excel 的在線(xiàn)表格,功能強(qiáng)大、配置簡(jiǎn)單、完全開(kāi)源。其具有以下功能:
canvas-confetti官網(wǎng):https://www.kirilv.com/canvas-confetti/ Github:https://github.com/catdad/canvas-confetti canvas-confetti 是一個(gè)基于 Canvas 的庫(kù),用于在 Web 頁(yè)面中實(shí)現(xiàn)炫酷的彩色紙屑動(dòng)畫(huà)效果。它實(shí)現(xiàn)了高性能、流暢的紙屑動(dòng)畫(huà)效果,同時(shí)兼容各種現(xiàn)代瀏覽器。提供了許多可自定義的選項(xiàng),如紙屑顏色、形狀、數(shù)量、速度、角度、發(fā)射器位置等,可以輕松實(shí)現(xiàn)不同的紙屑效果。并支持多種觸發(fā)方式,如點(diǎn)擊按鈕、滾動(dòng)頁(yè)面、定時(shí)觸發(fā)等,可根據(jù)需求進(jìn)行定制。 x-spreadsheet官網(wǎng):https://myliang.github.io/x-spreadsheet/ Github:https://github.com/myliang/x-spreadsheet x-spreadsheet 是一個(gè)基于 Web(es6) canvas 構(gòu)建的輕量級(jí) Excel 開(kāi)發(fā)庫(kù)。其具有以下特點(diǎn):
QRCanvas官網(wǎng):https://gera2ld.github.io/qrcanvas/ Github:https://github.com/gera2ld/qrcanvas QRCanvas 是一個(gè)基于 canvas 的 Javascript 二維碼生成工具。其具有以下特點(diǎn):
Signature Pad官網(wǎng):http://szimek.github.io/signature_pad/ Github:https://github.com/szimek/signature_pad Signature Pad 是一個(gè)基于 Canvas 實(shí)現(xiàn)的簽名庫(kù),用于繪制簽名。它可以在所有現(xiàn)代桌面和移動(dòng)瀏覽器中使用,不依賴(lài)于任何外部庫(kù)。Signature Pad提供了許多可自定義的選項(xiàng),如筆畫(huà)顏色、粗細(xì)、背景色、畫(huà)布大小、簽名格式等,可以輕松實(shí)現(xiàn)不同的簽名風(fēng)格和功能。 Rough.js官網(wǎng):https://roughjs.com/ Github:https://github.com/rough-stuff/rough Rough.js 是一個(gè)輕量級(jí)的(大約 8k),基于 Canvas 的可以繪制出粗略的手繪風(fēng)格的圖形庫(kù)。該庫(kù)提供繪制線(xiàn)條、曲線(xiàn)、弧線(xiàn)、多邊形、圓形和橢圓的基礎(chǔ)能力,同時(shí)支持繪制 SVG 路徑。除此之外,Rough.js 還提供了大量的可自定義選項(xiàng),可以調(diào)整線(xiàn)寬、線(xiàn)條顏色、填充顏色、字體樣式、背景顏色等,以使圖形更加個(gè)性化。 Fabric.js官網(wǎng):http://fabricjs.com/ Github:https://github.com/fabricjs/fabric.js Fabric.js 是一個(gè)強(qiáng)大且簡(jiǎn)單的Javascript HTML5 Canvas庫(kù)。 Canvas提供一個(gè)好的畫(huà)布能力, 但是Api不夠友好。繪制簡(jiǎn)單圖形其實(shí)還可以, 不過(guò)做一些復(fù)雜的圖形繪制, 編寫(xiě)一些復(fù)雜的效果,就不是那么方便了。Fabric.js就是為此而開(kāi)發(fā),它主要用對(duì)象的方式去編寫(xiě)代碼。 Fabric.js能做的事情
它提供了靈活豐富的Api和可配置化參數(shù)輕松實(shí)現(xiàn)復(fù)雜的效果,該開(kāi)源庫(kù)已被許多開(kāi)發(fā)者用于項(xiàng)目實(shí)踐中,廣受好評(píng)。 uCharts官網(wǎng):https://www.ucharts.cn/v2/#/ Gitee:https://gitee.com/uCharts/uCharts uCharts是一款高性能的前端應(yīng)用圖表庫(kù),開(kāi)發(fā)人員編寫(xiě)一套代碼,可以在Web、iOS、Android以及小程序中使用。 全端全平臺(tái)支持,開(kāi)箱即用,支持PC、H5、小程序(微信/支付寶/百度/頭條/飛書(shū)/QQ/快手/釘釘/淘寶/京東)、Vue、Taro等更多支持canvas的框架,體積小巧、調(diào)用簡(jiǎn)單方便、性能及體驗(yàn)極佳。 uCharts堅(jiān)持開(kāi)源,遵循Apache Licence 2.0的開(kāi)源協(xié)議,在項(xiàng)目中應(yīng)用中無(wú)需支付任何費(fèi)用,即可將 uCharts 應(yīng)用到實(shí)際的生成環(huán)境中。 SpriteJS官網(wǎng):http://spritejs.com/ Gitee:https://github.com/spritejs/spritejs SpriteJS 是一款由360奇舞團(tuán)開(kāi)源的跨終端 canvas 繪圖框架,可以基于 canvas 快速繪制結(jié)構(gòu)化 UI、動(dòng)畫(huà)和交互效果,并發(fā)布到任何擁有canvas環(huán)境的平臺(tái)上(比如瀏覽器、小程序和node)。 我們知道,canvas API可以很靈活地繪制各種矢量圖形到畫(huà)布上,但是 canvas API 本身比較低級(jí),比如我們要在畫(huà)布中央繪制一個(gè)帶有圓角的紅色矩形,使用 canvas 原生的 API,需要這樣:
如果實(shí)現(xiàn)相同的效果,使用 SpriteJS 是這樣寫(xiě):
Sprite 為圖形創(chuàng)建類(lèi)似于 DOM 的對(duì)象模型,因此我們可以像創(chuàng)建 DOM 元素一樣,創(chuàng)建 Sprite 元素,并將它們 append 到 layer 上,從而將元素呈現(xiàn)到畫(huà)布上。SpriteJS 有如下特點(diǎn):
oCanvas官網(wǎng):http://ocanvas.org/ Gitee:https://github.com/koggdal/ocanvas oCanvas是一個(gè)Javascript庫(kù),旨在簡(jiǎn)化HTML5 Canvas的開(kāi)發(fā)。不用處理像素,而是處理對(duì)象。它非常簡(jiǎn)單明了。請(qǐng)看一下這些例子,看看它有多容易。 oCanvas通過(guò)在原生像素繪制方法和創(chuàng)建并添加到畫(huà)布中的對(duì)象之間建立橋梁,使畫(huà)布開(kāi)發(fā)更容易理解和執(zhí)行。現(xiàn)在可以非常容易地創(chuàng)建對(duì)象、更改這些對(duì)象的屬性并向其添加事件,而一切都很正常,因?yàn)閛Canvas可以為您處理背景內(nèi)容。 jCanvas官網(wǎng):https://projects.calebevans.me/jcanvas/ Gitee:https://github.com/caleb531/jcanvas <canvas>元素是HTML5之外的一個(gè)新元素。它允許您在一個(gè)名為畫(huà)布的空白元素上繪制形狀、路徑、圖像和其他圖形。 創(chuàng)建畫(huà)布 在畫(huà)布上繪制之前,您需要?jiǎng)?chuàng)建一個(gè)。 <canvas width=“300”height=“150”></canvas> 當(dāng)然,畫(huà)布可以是您想要的任何寬度/高度。您可能還希望為畫(huà)布提供一個(gè)ID(以供將來(lái)參考)。 附帶說(shuō)明一下,您無(wú)法通過(guò)CSS準(zhǔn)確設(shè)置畫(huà)布的寬度和高度;您只能通過(guò)canvas元素的width和height屬性來(lái)執(zhí)行此操作。 導(dǎo)入jCanvas 您還需要以某種方式將jCanvas添加到頁(yè)面中(通常使用<script>元素即可)。 <script src=“jcanvas.min.js”></script> RGraph官網(wǎng):https://www.rgraph.net/ Gitee:https://github.com/heyesr/rgraph RGraph是一個(gè)使用HTML5 Canvas標(biāo)簽實(shí)現(xiàn)的圖表制作Library。利用該Library生成的Chart具有可交互性,當(dāng)鼠標(biāo)點(diǎn)擊或移過(guò)時(shí)會(huì)顯示相應(yīng)的信息,可以動(dòng)態(tài)加載Chart或?qū)μ厥恻c(diǎn)進(jìn)行縮放。 Two.js官網(wǎng):https://two.js.org/ Gitee:https://github.com/jonobr1/two.js Two.js 是面向現(xiàn)代 Web 瀏覽器的一個(gè)二維繪圖 API。Two.js 可以用于多個(gè)場(chǎng)合:SVG,Canvas 和 WebGL,旨在使平面形狀和動(dòng)畫(huà)的創(chuàng)建更方便,更簡(jiǎn)潔。 Paper.js官網(wǎng):http://paperjs.org/ Gitee:http://github.com/paperjs/paper.js Paper.js是一款開(kāi)源的矢量圖形腳本框架,基于 HTML5 Canvas 開(kāi)發(fā),提供清晰的場(chǎng)景圖、DOM和大量強(qiáng)大的功能用來(lái)創(chuàng)建各種向量圖和貝塞爾曲線(xiàn)。 EaselJS官網(wǎng):https://createjs.com/easeljs Gitee:https://github.com/createjs EaselJS 是一個(gè)封裝了 HTML5 畫(huà)布(Canvas) 元素的 Javascript 庫(kù)。 Pixi.js官網(wǎng):https://pixijs.com/ Gitee:https://github.com/pixijs/pixijs Pixi.js 是一個(gè) 2D webGL 渲染器,提供無(wú)縫 Canvas 回退,支持主流瀏覽器,包括桌面和移動(dòng)。 最后一臺(tái)電腦,一個(gè)鍵盤(pán),盡情揮灑智慧的人生; 幾行數(shù)字,幾個(gè)字母,認(rèn)真編寫(xiě)生活的美好; 一個(gè)靈感,一段程序,推動(dòng)科技進(jìn)步,促進(jìn)社會(huì)發(fā)展。 該文章在 2023/6/8 15:38:34 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |