html5学习(一)--canvas画时钟

利用空余时间学习一下html5.
  1 <!doctype html>
  2 <html>
  3     <head></head>
  4     <body>
  5         <canvas id="clock" width="500" height="500"></canvas>
  6         <script>
  7             var clock=document.getElementById(clock);
  8             var cxt = clock.getContext(2d);
  9             function drawClock(){
 10                 //清除画布
 11                 cxt.clearRect(0,0,500,500);
 12                 var now = new Date();
 13                 var sec = now.getSeconds();
 14                 var min = now.getMinutes();
 15                 var hour = now.getHours();
 16                 //小时必须获取浮点类型(小时+分数转化成的小时);
 17                 hour= hour+min/60;
 18                 //问题:2014年8月18日 22:08:41
 19                 //将24小时进制转换成12小时
 20                 hour= hour>12?hour-12:hour;
 21                 //表盘(蓝色)
 22                 cxt.lineWidth=10;
 23                 cxt.strokeStyle="blue";
 24                 //刻度
 25                 cxt.beginPath();
 26                 cxt.arc(250,250,200,0,360,false);
 27                 cxt.closePath();
 28                 cxt.stroke();
 29                 //时刻度
 30                 for(var i=0;i<12;i++){
 31                     cxt.save();//保持当前状态
 32                     cxt.lineWidth=10;//设置时针的粗细
 33                     cxt.strokeStyle="#000";//设置时针颜色
 34                     cxt.translate(250,250);//设置0,0点
 35                     cxt.rotate(i*30*Math.PI/180);//设置旋转角度(=角度*Math*PI/180 36                     cxt.beginPath();
 37                     cxt.moveTo(0,-170);
 38                     cxt.lineTo(0,-190);
 39                     cxt.closePath();
 40                     cxt.stroke();
 41                     cxt.restore();//释放状态
 42                 }
 43                  //分刻度
 44                  for(var i=0;i<60;i++){
 45                     cxt.save();//保持当前状态
 46                     cxt.lineWidth=5;//设置时针的粗细
 47                     cxt.strokeStyle="#000";//设置时针颜色
 48                     cxt.translate(250,250);//设置0,0点
 49                     cxt.rotate(i*6*Math.PI/180);//设置旋转角度(=角度*Math*PI/180 50                     cxt.beginPath();
 51                     cxt.moveTo(0,-180);
 52                     cxt.lineTo(0,-190);
 53                     cxt.closePath();
 54                     cxt.stroke();
 55                     cxt.restore();//释放状态
 56                 }
 57                  //时针
 58                   cxt.save();
 59                  //设置时针风格
 60                  cxt.lineWidth=10;
 61                  cxt.strokeStyle="#000";
 62                  //设置异次元空间的0,0点
 63                  cxt.translate(250,250);
 64                  cxt.rotate(hour*30*Math.PI/180)//设置旋转角度
 65                  cxt.beginPath();
 66                  cxt.moveTo(0,-140);
 67                  cxt.lineTo(0,10);
 68                  cxt.closePath();
 69                  cxt.stroke();
 70                  cxt.restore();
 71                  
 72                  //分针
 73                  cxt.save();
 74                  cxt.lineWidth=7;
 75                  cxt.strokeStyle="#000";
 76                  //设置异次元空间的0,0点
 77                  cxt.translate(250,250);
 78                  cxt.rotate(min*6*Math.PI/180)//设置旋转角度
 79                  cxt.beginPath();
 80                  cxt.moveTo(0,-160);
 81                  cxt.lineTo(0,15);
 82                  cxt.closePath();
 83                  cxt.stroke();
 84                  cxt.restore();
 85                  
 86                  //秒针
 87                  cxt.save();
 88                  cxt.lineWidth=3;
 89                  cxt.strokeStyle="red";
 90                  //设置异次元空间的0,0点
 91                  cxt.translate(250,250);
 92                  cxt.rotate(sec*6*Math.PI/180)//设置旋转角度
 93                  cxt.beginPath();
 94                  cxt.moveTo(0,-170);
 95                  cxt.lineTo(0,20);
 96                  cxt.closePath();
 97                  cxt.stroke();
 98                  //画出时针,分针,秒针的交叉点
 99                  cxt.beginPath();
100                  cxt.arc(0,0,5,0,360,false);
101                  //设置填充样式
102                  cxt.fillStyle="yellow";
103                  cxt.fill();
104                  //设置笔触样式
105                  cxt.stroke();
106                  //设置秒针钱小圆点
107                  cxt.beginPath();
108                  cxt.arc(0,-150,5,0,360,false);
109                  //设置填充样式
110                  cxt.fillStyle="yellow";
111                  cxt.fill();
112                  //设置笔触样式
113                  cxt.stroke();
114                  cxt.restore();
115         }
116             //使用setInterval(代码,毫秒时间)时钟转动
117             drawClock();
118             setInterval(drawClock,1000);
119         </script>
120     </body>
121 
122 </html>

 

显示效果:

html5学习(一)--canvas画时钟,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。