使用canvas實現倒計時效果

2021-08-14 18:00:08 字數 1493 閱讀 3718

假設現在離新聞聯播開始還有3分鐘21秒。現在要通過canvas實現這個以03:21開始以00:00結束的倒計時。

問題的關鍵在於,如何通過canvas繪製03:21 、02:36。簡化問題,我們可以使用canvas繪製0、3、":"、2、1形狀的圖畫,時間改變,再次重新繪製即可。

繪製數字和符號「:」

以繪製數字0為例,0的繪製可以借助乙個二維陣列。

var arc=[

[0,0,1,1,1,0,0],

[0,1,1,0,1,1,0],

[1,1,0,0,0,1,1],

[1,1,0,0,0,1,1],

[1,1,0,0,0,1,1],

[1,1,0,0,0,1,1],

[1,1,0,0,0,1,1],

[1,1,0,0,0,1,1],

[0,1,1,0,1,1,0],

[0,0,1,1,1,0,0]

]

這裡,將這個二維陣列放在10*7的**中,格仔中的值為1就畫圓,為0則不做 處理。

每個格仔的寬高為10,圓的半徑為4,圓的中心與格仔的中心重合。

假設這個**左上角的座標為原點(0,0),根據上面給出的二維陣列,繪製數字0

canvas繪製原型的函式如下

context.arc(x,y,radius,startangle,endangle,anticlockwise);
一共有6個引數,x為圓心橫座標,y為圓心縱座標,radius為半徑,startangle為開始角度,endangle為結束角度,anticlockwise為是否逆向進行繪製。

for(var i=0;i<10;i++)

}}

繪製結果如下圖

這裡看到數字0的上邊與左邊的小圓點顯示不完整,這是因為將**的左上角座標設定為(0,0)了,為了顯示完整,將左上角座標稍作調整即可。

數字0繪製完畢,剩餘的3、:、2、1的繪製方式之相同

注意的點

檢視示例

這裡

倒計時效果

案例分析 1.這個倒計時是不斷變化的,因此需要定時器來自動變化 setinterval 2.三個黑色盒子分別存放時分秒 3.三個黑色盒子利用innerhtml放入計算的小時分鐘秒數 4.第一次執行也是間隔毫秒數,因此剛重新整理頁面會有空白 5.最好採取封裝函式的方式,這樣可以先呼叫一次這個函式,防止...

JS實現倒計時效果

效果 倒計時效果 title div style head h 1 div m 2 div s 3 div 獲取時分秒 var hour document.queryselector h var minute document.queryselector m var second document....

前端倒計時效果

分析 charset utf 8 網易雲 title divspan style head type button class start 開啟定時器button type button class stop 暫停定時器button 距離2020年12月份四級考試還有p class day span...