校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 詳解利用canvas實現環形進度條的方法

詳解利用canvas實現環形進度條的方法

熱門標簽:江蘇高頻外呼系統線路 會聲會影怎樣做地圖標注效果 標準智能外呼系統 平頂山電子地圖標注怎么修改 洛陽市伊川縣地圖標注中心官網 搜狗星級酒店地圖標注 電銷機器人視頻 地圖標注自己去過的地方 高德地圖標注錯誤怎么修改

前提:有時候在項目中會有用到進度條的情況,使用css3也可以實現,但是對于性能不好的設備,或者網絡不好的情況下,卡頓現象非常明顯,避免出現不流暢的尷尬情況,所以記錄一下,使用canvas來實現的方法。

效果圖

DOM中,首先定義canvas畫板元素:

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

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

接下來是js編寫:

定義canvas.js并在頁面引入

var canvas = document.getElementById('canvas'), //獲取canvas元素
  context = canvas.getContext('2d'), //獲取畫圖環境,指明為2d
  centerX = canvas.width / 2, //Canvas中心點x軸坐標
  centerY = canvas.height / 2, //Canvas中心點y軸坐標
  rad = Math.PI * 2 / 100, //將360度分成100份,那么每一份就是rad度
  speed = 0.1; //加載的快慢就靠它了

//繪制藍色外圈
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();
}

//動畫循環
(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);

每行代碼的注釋標注非常清楚,如果還有不理解的可以去看canvas基礎,應該就可以了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

標簽:廣東 廣西 常德 果洛 鄂爾多斯 阿克蘇 蚌埠 松原

巨人網絡通訊聲明:本文標題《詳解利用canvas實現環形進度條的方法》,本文關鍵詞  詳解,利用,canvas,實現,環形,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解利用canvas實現環形進度條的方法》相關的同類信息!
  • 本頁收集關于詳解利用canvas實現環形進度條的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 乌兰浩特市| 宝丰县| 宣城市| 咸宁市| 循化| 申扎县| 东乌| 休宁县| 梅河口市| 济阳县| 平乡县| 芜湖市| 固原市| 昌江| 大渡口区| 闸北区| 青浦区| 信丰县| 元阳县| 曲沃县| 漳浦县| 嘉峪关市| 高青县| 健康| 营山县| 连州市| 都匀市| 安徽省| 屯昌县| 九江县| 治多县| 柞水县| 田阳县| 黔江区| 革吉县| 原平市| 枣庄市| 克拉玛依市| 五寨县| 浙江省| 定边县|