国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > HTML5 > 正文

詳解利用canvas實(shí)現(xiàn)環(huán)形進(jìn)度條的方法

2024-09-05 07:19:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前提:有時(shí)候在項(xiàng)目中會(huì)有用到進(jìn)度條的情況,使用css3也可以實(shí)現(xiàn),但是對(duì)于性能不好的設(shè)備,或者網(wǎng)絡(luò)不好的情況下,卡頓現(xiàn)象非常明顯,避免出現(xiàn)不流暢的尷尬情況,所以記錄一下,使用canvas來(lái)實(shí)現(xiàn)的方法。

效果圖

DOM中,首先定義canvas畫(huà)板元素:

<canvas id="canvas" width="500" height="500" style="background:#F7F7F7;">    <p>you browser not support canvas!</p>  </canvas>

對(duì)于不支持canvas的瀏覽器則會(huì)顯示:you browser not support canvas!

接下來(lái)是js編寫(xiě):

定義canvas.js并在頁(yè)面引入

var canvas = document.getElementById('canvas'), //獲取canvas元素  context = canvas.getContext('2d'), //獲取畫(huà)圖環(huán)境,指明為2d  centerX = canvas.width / 2, //Canvas中心點(diǎn)x軸坐標(biāo)  centerY = canvas.height / 2, //Canvas中心點(diǎn)y軸坐標(biāo)  rad = Math.PI * 2 / 100, //將360度分成100份,那么每一份就是rad度  speed = 0.1; //加載的快慢就靠它了//繪制藍(lán)色外圈function blueCircle(n) {  context.save();  context.beginPath();  context.strokeStyle = "#49f";  context.lineWidth = 12;  context.arc(centerX, centerY, 100, -Math.PI / 2, -Math.PI / 2 + n * rad, false);  context.stroke();  context.restore();}//繪制白色外圈function whiteCircle() {  context.save();  context.beginPath();  context.strokeStyle = "#A5DEF1";  context.lineWidth = 12;  context.arc(centerX, centerY, 100, 0, Math.PI * 2, false);  context.stroke();  context.closePath();  context.restore();}//百分比文字繪制function text(n) {  context.save();  context.fillStyle = "#F47C7C";  context.font = "40px Arial";  context.textAlign = "center";  context.textBaseline = "middle";  context.fillText(n.toFixed(0) + "%", centerX, centerY);  context.restore();}//動(dòng)畫(huà)循環(huán)(function drawFrame() {  window.requestAnimationFrame(drawFrame, canvas);  context.clearRect(0, 0, canvas.width, canvas.height);  whiteCircle();  text(speed);  blueCircle(speed);  if (speed > 100) speed = 0;  speed += 0.1;}());window.requestAnimationFrame(drawFrame, canvas);

每行代碼的注釋標(biāo)注非常清楚,如果還有不理解的可以去看canvas基礎(chǔ),應(yīng)該就可以了。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 定远县| 临漳县| 布拖县| 黄大仙区| 本溪| 平舆县| 军事| 五河县| 青河县| 太白县| 且末县| 南和县| 沭阳县| 卢湾区| 福清市| 徐闻县| 赣榆县| 喀喇沁旗| 根河市| 和林格尔县| 渝北区| 安远县| 隆林| 孟津县| 唐山市| 芦溪县| 永登县| 申扎县| 敖汉旗| 肃南| 乌恰县| 宜兰县| 报价| 随州市| 从化市| 奉化市| 菏泽市| 河源市| 米林县| 屏南县| 林西县|