Canvas实现的动态时钟
实验室杨老大给的假期任务,不管用什么方式实现一个动态的时钟。
因为我是弄web的来着,思前想后比较容易的实现方式就canvas或者css3了,所以就决定用canvas画个时钟出来。
canvas
Canvas 对象表示一个 HTML 画布元素 canvas。它没有自己的行为,但是定义了一个 API 支持脚本化客户端绘图操作,用自带的api进行画图操作。
首先我们在body里面定义一个canvas对象
1 | <canvas id="canvas" style="border:1px solid black;margin:50px auto;display:block" > |
运用canvas画图
构建环境
1 | <script type="text/javascript"> |
弄好环境之后就可以进行画图了
定义一个画图的函数
1 | function drawClock(){ |
然后继续在这个函数里面画一个圆,用来当做表盘
1 | ctx.beginPath(); //开始画图 |
效果图
之后就是画表盘上的刻度 分别是小时和分钟
1 | for(var i = 0;i<12;i++){ |
效果图
画完之后我们就可以画时针,分针,秒针了.
1 | //表盘中兴的点 |
通过系统时间的数值来判断直线的偏转度来构成时针,分针和秒针的偏转。
效果图
之后只要不断的动态刷新drawClock()这个函数,就可以动态的显示时间了
1 | drawClock(); //调用函数 |
至此我们的动态时钟就完成了
附上一个效果的地址
总结
在web端,做一个动态的时钟还是不怎么难的,运用canvas之后只要熟记语法规则,基本都可以做出来的
有几个常用的canvas api的总结beginPath()开始绘制常常与closePath()一起用,用于开始和结束的标志lineWidth:线的宽度strokeStyle()线的颜色arc(x,y,r,0,cot,方向)绘制曲线save()保存上个的绘图环境translate()设置旋转角度,参数是弧度fill()填充颜色restore()旋转后返回画布
绘制一条线的moveTo()起点 和 lineTo()终点
大概一些常用的就这么多了吧