分享h5 canvas圆圈进度条的实例代码


本文摘自PHP中文网,作者零下一度,侵删。

实现h5 canvas圆圈进度条的实例代码,本人的想法有很多,但是利用canvas无疑是最方便的解决办法,在此以canvas实现为例子,具体实现步骤如下:


Paste_Image.png

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

<!DOCTYPE html>

<html>

<meta charset="utf-8">

<head>

    <title></title>

    <style type="text/css">

        *{

            margin: 0;

            padding: 0;

        }

    </style>

    <!-- <script type="text/javascript" src="js/Progress.js"></script> -->

</head>

<body>

    <canvas id="canvas1"></canvas>

    <canvas id="canvas2"></canvas>

    <canvas id="canvas3"></canvas>

 

    <canvas id="canvas8"></canvas>

    <canvas id="canvas9"></canvas>

    <canvas id="canvas10"></canvas>

 

    <script type="text/javascript">

    window.onload = function(){

        new Progress().renderOne('canvas1',100,6,10);//id,画布宽和高,圆的半径 百分百。

        new Progress().renderOne('canvas2',100,5,20);

        new Progress().renderOne('canvas3',100,5,30);

 

        new Progress().renderOne('canvas8',100,5,80);

        new Progress().renderOne('canvas9',100,5,90);

        new Progress().renderOne('canvas10',100,5,100);

    }

    function Progress() {

    var progress = { textheight: null, renderOne: function(id, length, r, percent) {

            var canvas = document.getElementById(id);

            var context = canvas.getContext("2d");

            canvas.width = length;

            canvas.height = length;

            var i = 0;

            var interval = setInterval(function() { i++;

                progress.render(context, length, r, i, percent);

                if (i >= percent) { clearInterval(interval) } }, 10) }, render: function(context, length, r, i, percent) { context.clearRect(0, 0, length, length);

            context.beginPath();

            var gradient = context.createLinearGradient(length, 0, 0, 0);

            gradient.addColorStop("0", "#76EEC6");

            gradient.addColorStop("1.0", "#63B8FF");

            context.strokeStyle = gradient;

            context.lineWidth = r;

            context.arc(length / 2, length / 2, length / 2 - r, -0.5 * Math.PI, -0.5 * Math.PI + i * 0.02 * Math.PI, false);

            context.stroke();

            context.closePath();

            context.beginPath();

            context.strokeStyle = "#8d8d8d";

             context.strokeStyle ='red';/////////////////////////////////////////////////

            context.lineWidth = 2;

            context.fillStyle = "#ffffff";

            context.arc(length / 2, r, 0.6 * r, 0, 2 * Math.PI, false);

            context.stroke();

            context.fill();

            context.closePath();

            context.beginPath();

            var radian = percent / 100 * 2 * Math.PI - 0.5 * Math.PI;

            var x = Math.cos(radian) * (length / 2 - r) + length / 2;

            var y = Math.sin(radian) * (length / 2 - r) + length / 2;

            context.arc(x, y, 0.6 * r, 0, 2 * Math.PI, false);

            context.stroke();

            context.fill();

            context.closePath();

            context.beginPath();

            context.lineWidth = 1;

            context.strokeStyle = "#54DDAF";

            context.fillStyle = "#54DDAF";

             context.fillStyle = "blue";///////////////////////////////////////

            context.arc(length / 2, length / 2, length / 2 - 2 * r, 0, 2 * Math.PI);

            context.fill();

            context.closePath();

            context.beginPath();

            context.font = "bold " + (length / 2 - 2.5 * r) / 2 + "px 微软雅黑";

            context.fillStyle = "#ffffff";

            var text = percent + "%";

            textwidth = context.measureText(text).width;

            if (this.textheight == null) {

                var p = document.createElement("p");

                document.body.appendChild(p);

                p.innerHTML = text;

                p.style.fontSize = ((length / 2 - 2.5 * r) / 2) + "px";

                this.textheight = p.offsetHeight;

                p.parentNode.removeChild(p) }

            textheight = this.textheight;

            context.fillText(text, (length - textwidth) / 2, length / 2 + textheight / 4);

            context.fill();

            context.closePath() } };

    return progress };

 

 

 

</script>

</body>

</html>

【相关推荐】

1. H5 canvas实现圆形动态加载进度实例

2. Canvas实现圆形进度条并显示数字百分比

3. HTML5 程序设计

4. 小程序开发之利用co处理异步流程的实例教程

5. js+canvas简单绘制圆圈的方法_javascript技巧

以上就是分享h5 canvas圆圈进度条的实例代码的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

html5播放视频教程

移动端html5列表的制作方法

html5打开手机扫码功能及优缺点_html5教程技巧

html5在canvas中实现自定义路径动画详解

h5和css3有哪些新特性

分享h5中alt和title的区别与用法

html5容易被忽略的小知识

html5单页面手势滑屏切换原理分析

canvas实现动态粒子连线效果(附代码)

让ie支持html5的方法

更多相关阅读请进入《h5》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...