......_canvas绘制圆环进度条">
当前位置:   article > 正文

Canvas绘制环形进度条_canvas绘制圆环进度条

canvas绘制圆环进度条

给大家分享一个用Canvas写的环形进度条,实现从0%加载到75%的动画,静态效果图如下:

实现动画的代码如下:

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title>Canvas绘制环形进度条</title>
  6. <style>
  7. body {
  8. text-align: center;
  9. }
  10. #cvs {
  11. background: grey;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <h3>Canvas绘制环形进度条</h3>
  17. <canvas width="800" height="600" id="cvs"></canvas>
  18. <script>
  19. var ctx = cvs.getContext("2d");// 创建画笔
  20. ctx.beginPath();// 开始路径
  21. ctx.arc(400, 300, 200, 0, 2 * Math.PI);// 创建圆弧
  22. ctx.strokeStyle = "#aaa";// 设置填充颜色
  23. ctx.lineWidth = 15;// 设置填充线宽
  24. ctx.stroke();// 开始描边
  25. var start = -Math.PI / 2;// 声明起始角
  26. var deg = 0;// 结束角度
  27. var timer = setInterval(function () {
  28. deg += 3.6;// 角度累加
  29. ctx.beginPath();// 开始新路径,必须放在定时器里面
  30. ctx.arc(400, 300, 200, start, start + deg * Math.PI / 180);// 创建圆弧
  31. ctx.strokeStyle = "#e4393c";// 设置填充颜色
  32. ctx.stroke();// 开始描边
  33. if (deg >= 270) {// 满足条件
  34. clearInterval(timer);// 清除定时器
  35. }
  36. }, 40);
  37. ctx.textBaseline = "middle";// 设置字体对齐基线
  38. ctx.font = "40px sans-serif";// 设置字体样式
  39. var number = 0;// 设置数字起始值
  40. var timer1 = setInterval(function () {// 设置定时器
  41. ctx.clearRect(350, 250, 180, 180);// 清除画布区域
  42. number++;// 数字累加
  43. var str = number + "%";// 声明字符串
  44. ctx.fillText(str, 375, 300);// 填充文字
  45. if (number >= 75) {// 满足条件
  46. clearInterval(timer1);// 清除定时器
  47. }
  48. }, 40)
  49. </script>
  50. </body>
  51. </html>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/254353
推荐阅读
相关标签
  

闽ICP备14008679号