canvas 入門實戰–邀請卡生成與下載

發表於2018-01-04

1.前言

寫了很多的javascript和css3的文章,是時候寫一篇canvas的了。canvas是html5提供的一個新的功能!至於作用,就是一個畫布。然後畫筆就是javascript。canvas的用途非常的廣,特別是html5遊戲以及資料視覺化這兩個方面。現在canvas給我的感覺就和css3一樣,可以不用太厲害,但是必須要會基礎的用法。但是以後對canvas的需求,肯定會越來越大。所以canvas很值得學習,而且學好canvas,就是很好的一個加分項。對於這篇文章,我也是以canvas初學者的角度寫的,會有很多改善的地方。如果大家覺得我有什麼可以改善的,或者建議,歡迎指點迷津!程式碼已上傳github,需要的歡迎star(downloadImg)。

大家看這篇文章之前,要了解javascript的一些基礎,也要看著瞭解一些canvas的api(canvas-MSN教程canvas菜鳥教程

2.邀請卡例項

邀請卡自動生成這個會有的,畢竟有時候,很多邀請卡都是一樣的,就是被邀請的人不一樣而已,也就是說,整個邀請卡,就是一個名字不一樣,那麼下面。就寫一套程式碼,根據名字生成邀請卡!

2-1.執行效果bVZWJs

html程式碼

效果如圖,那麼大家細想一下,關於一張邀請卡,有什麼東西是需要改變的!看到上圖相比不難發現!有如下需要改變的屬性:圖片的大小,圖片,使用者名稱,使用者名稱的座標(x,y,x軸是否居中,y軸是否居中),使用者名稱字型的大小,使用者名稱字型的顏色,以及下載圖片的型別。

這樣就得到了如下的引數(大家看到有些引數是有值的,可以想成預設值就行了)

2-2.步驟

1.初步效果

根據上面的引數,先初步畫一個效果,程式碼基本都是一個寫法,沒什麼技巧

bVZWJs12.動態改變引數

看到圖已經畫好了,工作其實已經完成一半了!

下面就是動態改變引數!這一步其實很簡單。
首先,改變畫布的尺寸

上面程式碼設定了,只要輸入框失去了焦點,就會改變畫布的大小,下面來執行下,看下效果(gif圖差強人意,大家看懂就好)bVZUkv

canvas沒有層級的說法,只要改canvas,都要重繪。哪怕就是一個字移動一個畫素。

做好了這個,下面做選擇圖片的功能!

bVZX7E下面開始改文字,使用者名稱這個有點不一樣,我以空格分割。如果輸入多個使用者名稱,以第一個使用者名稱重繪。下面程式碼,註釋就不寫了,還是和上面的邏輯一樣!

bVZUnM下面開始使用者名稱的座標,程式碼方面,也是改option的相關屬性

bVZUnV是否水平居中顯示bVZUnU

其他的屬性,字型大小和顏色,基本是一樣的程式碼,執行的效果圖我不放了!

3.按鈕操作

效果預覽

就是預覽當前canvas的一個效果,這個就很簡單了,就是新開一個視窗,然後把圖片寫進去而已

bVZX8z

下載當前圖片

下載圖片這個,基本也是寫法的,都是些記憶的東西

canvas 入門實戰–邀請卡生成與下載

批量下載圖片

這個複雜一點,但也不難,下面一步一步來!

1.首先批量匯出,那麼使用者名稱我這裡是使用空格分割,那麼現在我在option裡面,弄一個欄位textAll,所有文字的集合。all代表是否是批量下載。fn屬性代表回撥函式

2.然後修改繪製的函式draw,判斷是否是全部繪製的情況!

bVZX4kbVZX42

3.小結

關於canvas入門的第一篇文章,就寫到這裡了。寫完之後,也發現自己對canvas的也是有很多的不懂!上文的這例子,知識canvas很簡單的一個入門例項。canvas如果深入學習,能做到很多讓人驚訝的效果,這個得以後要加強學習,如果發現些值得記錄的知識,我也會寫文章。canvas是一個非常值得學習的知識,也是很有趣的一個知識。期待與大家有更多的交流和學習!

相關文章