这篇文章主要介绍了Html5 canvas实现粒子时钟的示例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。

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

下面我们将通过canvas和js实现,

首先要创建一个html文件并添加一个canvas画布,如下:

Document

.container{

margin: 0, auto;

width: 600px;

}

下面导入素材,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

同时,也可以通过计算圆的高度,得到半径,如下:

一个圆的高度是(r+1)*2,画布高度是由10个圆组成canvasHeight = (r+1)*2*10

若将画布高度设为100,则r就出来了,圆心xy也出来了,开始画圆了

先要在上面的Clock对象中加一条语句,计算rthis.r = 100/20-1;

下面我在Clock的原型上加上draw方法Clock.prototype.draw = function(num, index) {

this.cxt.fillStyle="#000";

for (let i=0; i

for (let j=0; 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();

}

}

}

}

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

this.draw(data[i], i);

}

}

通过正则可以方便的取到时分秒,在push数组时注意格式对应,其中10表示digit.js中的第10位字符,即冒号

注意 这样画会有问题,即画布不能刷新,可以加上这个canvas.height= 100

下面可以运行代码了,如下:var clock = new Clock();

setInterval(()=>{

clock.getTime();

})

好了,这样就ok了

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问Html5视频教程!

相关推荐:

html5网站粒子时钟,Html5 canvas实现粒子时钟的示例代码相关推荐

  1. html5游戏开发马赛克对比,canvas实现图片马赛克的示例代码

    1. 原生canvas实现用到的API 1) getContext(contextID) ---返回一个用于在画布上绘图的环境 Canvas.getContext('2d') // 返回一个 Canv ...

  2. php代码画表情包,canvas绘制表情包的示例代码

    本文介绍了canvas绘制表情包的示例代码,分享给大家,具体如下: 绘制卡通笑脸 var canvas = document.getElementById('canvas'); var context ...

  3. html+js+显示文字时钟,JavaScript canvas实现文字时钟

    本文实例为大家分享了canvas实现文字时钟的具体代码,供大家参考,具体内容如下 先看看效果图 代码 Document 您的浏览器不支持canvas var c=document.getElement ...

  4. html5 strongeaseinout,HTML5新特性 之canvas标签(Day1-4)(示例代码)

    canvas 1.什么是canvas? 1.1 是HTML5提供的一种新标签 1.2 canvas是一个矩形区域的画布,可以用JavaScript在上面绘画.控制其每一个像素 1.3 canvas 拥 ...

  5. html5网站上线模版,HTML5网站即将上线前端模板

    网站模板就是已经做好的网页框架,使用网页编辑软件将模板原有的图片和文字替换成自己的内容,再发布到自己的网站.每个网站模板压缩包内包含:PSD图片文件(可用Photoshop.ImageReady或Fi ...

  6. html5画布funcition,2020前端基础知识学习第一节(示例代码)

    一.选择题 1. 浏览器端的存储技术有哪些() A.cookie B.localStorage C.session D.userData 答案:A B D 分析:cookie通常用于存储用户等登录信息 ...

  7. html5经纬度 ios,iOS 如何根据经纬度来定位位置(示例代码)

    /** *  初始化一个经纬度结构体 */ CLLocationCoordinate2D center = {[latitudeTF.text floatValue],[longitudeTF.tex ...

  8. html5车牌效果,html中车牌号省份简称输入键盘的示例代码

    这篇文章主要介绍了html中车牌号省份简称输入键盘的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧原理是先写出一个按键的 ...

  9. 用c语言编写图片马赛克代码代码,canvas实现图片马赛克的示例代码

    1. 原生canvas实现用到的API 1) getContext(contextID) ---返回一个用于在画布上绘图的环境 复制代码代码如下: Canvas.getContext('2d') // ...

  10. php网站模板制作教程,WordPress模板页制作教程(示例代码)

    写在前面的话: 有很多WordPress小伙伴想制作不同风格的页面来满足自己的个性需求 但是大多数模板提供的页面模板非常有限,该如何手动制作属于自己风格的模板页呢? 其实,正如以上所说的,每个人都想拥 ...

最新文章

  1. 联想Y510P安装windows 8.1
  2. Windows下查看dll被哪个进程调用
  3. @PropertySource@ImportResource@Bean
  4. IOS对plist配置文件的读写操作
  5. 2015年第六届蓝桥杯C/C++ B组国赛 —— 第一题:积分之迷
  6. 【Tools】XMind8安装教程详解
  7. Ext.Net学习笔记10:Ext.Net ComboBox用法
  8. Source Insight 4.0的使用(转)
  9. 修改端口_如何修改服务器的远程端口
  10. 获取线程号 gettid()【原创】
  11. 随想录(提高代码质量的几个工具)
  12. The authors of these two monitoring tools
  13. 【渝粤教育】国家开放大学2018年秋季 2094T法理学 参考试题
  14. UDP socket 编程示例
  15. 新版白话空间统计(11):ArcGIS中的PZ值标尺
  16. 微信如何推送html文件,微信推送怎么附上文件_怎样在微信公众号上传附件图文步骤...
  17. 呼叫中心系统智能排队功能转接流程
  18. 联想0xc000007b蓝屏怎么修复
  19. 微信公众号笔记(二)
  20. 3月第5周业务风控关注 | 央视曝光偷密码的“×××”,9亿人个人信息存风险

热门文章

  1. android学习:《超级课程表》的课表界面设计
  2. 互联网摸鱼日报(2023-06-09)
  3. Oracle EBS使用adpatch工具打patch过程
  4. 计算机在建筑领域的应用,计算机技术在建筑工程领域的应用
  5. 为什么许多开店生意人都大老远跑到另外一个城市去开店做生意去赚钱
  6. java毕业设计外贸服装订单管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  7. CSS 背景人物虚化+字体不虚化
  8. Redhat安装完成后,注册激活方法
  9. 使用go mod 飞速下载 gin,解决go get下载包失败的问题
  10. STM32-OTA(五)EC20获取固件