h5 canvas实现粒子时钟的详细方法

互联网 18-9-6
本篇文章给大家带来的内容是关于h5 canvas实现粒子时钟的详细方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

我们先看看粒子时钟的效果,如下:

下面我们将通过canvas和js实现,首先要创建一个html文件并添加一个canvas画布,如下:

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>Document</title>     <style>         .container{             margin: 0, auto;             width: 600px;         }     </style> </head> <body>     <p id="container">         <canvas id="canvas"></canvas>     </p> </body>

下面导入素材,digit.js,素材中通过二维数组拼成一个个数字,共有:0-9和冒号,十个字符,如下:

可以看到为1的字符组成了下面开始创建画布:

function Clock() {         var canvas = document.getElementById("canvas");         canvas.width = 600;         canvas.height = 100;         this.cxt = canvas.getContext('2d');         this.cxt.fillStyle="#ddd";         this.cxt.fillRect(0, 0, 500, 100);     }

上面的代码就可以在浏览器画一个小灰色画布了下面我们开始分析:1.了解数据矩阵?就是多维数组2.如何画圆?2.1要先知道半径?

由上图得知,圆心的位置依次为:

r+1 r+1 + (r+1)*2*1 r+1 + (r+1)*2*2 。。。 r+1 + (r+1)*2*i
canvasHeight = (r+1)*2*10
this.r = 100/20-1;

下面我在Clock的原型上加上draw方法

Clock.prototype.draw = function(num, index) {         this.cxt.fillStyle="#000";         for (let i=0; i<digit[num].length; i++) {             for (let j=0; j<digit[num][i].length; j++) {                 if (digit[num][i][j] == 1) {                     this.cxt.beginPath();                     this.cxt.arc(index*70+(this.r+1)+(this.r+1)*2*j, (this.r+1)+(this.r+1)*2*i, this.r, 0, Math.PI*2, false);                     this.cxt.closePath();                     this.cxt.fill();                 }             }         }     }

下面就要得到时间,我们可以直接从new Date中用正则取时间,如下:

Clock.prototype.getTime = function() {         var reg = /(\d)(\d):(\d)(\d):(\d)(\d)/.exec(new Date());         var data = [];         data.push(reg[1], reg[2], 10, reg[3], reg[4], 10, reg[5], reg[6]);         for (var i=0; i<data.length; i++) {             this.draw(data[i], i);         }     }
canvas.height= 100

下面可以运行代码了,如下:

var clock = new Clock(); setInterval(()=>{         clock.getTime();     })

好了,这样就ok了。

相关推荐:

使用h5 canvas实现时钟的动态效果

Canvas实现炫丽的粒子运动效果

以上就是h5 canvas实现粒子时钟的详细方法的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: Html5
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:html5 progress标签怎么用?progress标签的属性介绍

相关资讯