html5 canvas實現多重顏色圓環進度條

2022-04-10 10:18:23 字數 2127 閱讀 3282

如題,使用canvas實現如圖效果,該效果用於手機端,也可以用於支援canvas的pc瀏覽器

實現思想:在畫布上畫多重扇圓進行顏色疊加,最後在頂層加上乙個白色並且半徑最小的圓覆蓋,使視覺上形成乙個圓環。

第一層是乙個灰色的全圓

第二層是從12點鐘方向順時針開始畫的紅色扇圓,當角度=360度時整個圓環都是紅色的。

第三層是從12點鐘方向逆時針開始畫的橙色扇圓

當紅色圓角度==橙色圓角度==0度時,圓環是灰色的(最底層的顏色)

當紅色圓角度==360度,橙色圓角度==0度時,圓環是紅色的(第二層顏色)

當紅色圓角度==360度,橙色圓角度》0度時,圓環出現兩種顏色(紅色、橙色)

>多色圓環進度

title

>

head

>

<

body

>

<

canvas

id="procanvas"

class

="procanvas"

value

="100%"

>

canvas

>

<

script

>

function

process(canvasid,op,stylewidth,styleheight)

else

context.closepath();

context.fillstyle ='

#db3030';

context.fill();

}else

if(process

==100

)

//畫進度(橙色)

if(oprocess !=0

&&oprocess

!=100

)

else

if(oprocess

==100

)

//畫內部空白

context.beginpath();

context.moveto(center[

0], center[

1]);

context.arc(center[

0], center[

1], 21*

scale,

0, math.pi *2

, true

); context.closepath();

context.fillstyle ='

rgba(255,255,255,1)';

context.fill();

} process(

"procanvas",

40,52,

52);

//10是橙色

script

>

body

>

html

>

用HTML5 Canvas 實現的 時鐘

基本動畫的步驟 basic animation steps 用canvas畫一幀動畫,通常需要以下四個步驟 1.清空 canvas 除非接下來要畫的內容會完全充滿 canvas 例如背景圖 否則你需要清空所有。最簡單的做法就是用 clearrect 方法。2.儲存 canvas 狀態 如果你要改變一...

HTML5 canvas 繪製圓形

canvas繪製圓形的思路 1 建立路徑 beginpath 2 建立圓形的路徑 3 關閉路徑 closepath 路徑不關閉也能繪製出圖形 4 設定繪製樣式。建立圓形路徑時需要用到物件的arc方法,方法定義如 arc x,y,radius,startangle,endangle,countercl...

HTML5 canvas擦除無效

部分安卓手機上會出現canvas內圖表重疊,並且清除無效,屬於偶現缺陷,非常難以確定其產生原因,比如下圖這個樣子,第一次繪製的圖形沒有擦除,導致第二次繪製時出現重影 初步考慮為裝置自身問題,引起canvasapi的context.clearrect執行無效。在經過一些嘗試之後,發現在每次擦除 cle...