百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> h5canvas实现粒子时钟的细致办法-
分享文章到:

h5canvas实现粒子时钟的细致办法-

发布时间:09/01 来源:未知 浏览: 关键词:
本篇文章给大家带来的内容是对于h5canvas实现粒子时钟的细致办法,有一定的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。 本篇文章给大家带来的内容是对于h5 canvas实现粒子时钟的细致办法,有一定的参照 价值,有需要的伴侣可以参照 一下,但愿对你有所帮忙。

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

第一要新建一个html文件并增加一个canvas画布,如下:




    
    Document
    


    

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

下面开端新建画布:

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

同时,也可以通过盘算圆的高度,得到半径,如下:
一个圆的高度是(r+1)*2,画布高度是由10个圆组成

canvasHeight = (r+1)*2*10

若将画布高度设为100,则r就出来了,圆心xy也出来了,开端画圆了
先要在上面的Clock对象中加一条语句,盘算r

this.r = 100/20-1;

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

Clock.prototype.draw = function(num, index) {
        this.cxt.fillStyle="#000";
        for (let i=0; i

draw接收2个参数,首先个是字符索引,第二个是字符偏移次序,70就是一个偏移距离,可以自定。
首先个for,拿到要渲染的字符数组,第二个for,取每一行进行渲染且只渲染为1的,画圆的参数主如果x,y,r

下面就要得到工夫,我们可以直接从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

通过正则可以利便的取到时分秒,在push数组时注意格局对应,其中10表示digit.js中的第10位字符,即冒号
注意 这样画会有题目,即画布不克不及刷新,可以加上这个

canvas.height= 100

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

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

好了,这样就ok了。

打赏

打赏

取消

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

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

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

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板