Kim_zh

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

  1 <!doctype html>
  2 <html>
  3     <head>
  4         <title>canvas</title>
  5     </head>
  6     <body>
  7         <canvas id = "clock" width = "500px" height = "500px">
  8             您的浏览器已过时,请更新!
  9         </canvas>
 10         <script type = "text/javascript">
 11             var clock = document.getElementById("clock");
 12             var cxt = clock.getContext("2d");
 13 
 14             function drawClock(x) {
 15                 var y = x / 2;
 16                 var r = (x - 100) / 2;
 17                 var x1 = r - 10;
 18                 var x2 = r - 20;
 19                 var x3 = r - 30;
 20                 var x4 = r - 40;
 21                 var x5 = r - 50;
 22                 //清除画布
 23                 cxt.clearRect(0, 0, x, x);
 24 
 25                 var now = new Date;
 26                 var sec = now.getSeconds();
 27                 var min = now.getMinutes();
 28                 var hour = now.getHours();
 29 
 30                 //解决时针的问题:1、小时之间  2、19:59:30s
 31                 hour += min / 60;
 32                 hour = hour > 12 ? hour - 12 : hour;
 33 
 34                 //表盘
 35                 cxt.lineWidth = 10;
 36                 cxt.strokeStyle = "blue";
 37                 cxt.beginPath();
 38                 cxt.arc(y, y, r, 0, 360, false);
 39                 cxt.closePath();
 40                 cxt.stroke();
 41                 //时刻度
 42                 for (var i = 0; i < 12;i++ ) {
 43                     cxt.save();
 44                     cxt.lineWidth = 7;
 45                     cxt.strokeStyle = "#000";
 46                     cxt.translate(y, y);
 47                     cxt.rotate(i*30 * Math.PI / 180);
 48                     cxt.beginPath();
 49                     cxt.moveTo(0, -x1);
 50                     cxt.lineTo(0, -x3);
 51                     cxt.closePath();
 52                     cxt.stroke();
 53                     cxt.restore();
 54                 }
 55                 //分刻度
 56                 for (var i = 0; i < 60; i++) {
 57                     cxt.save();
 58                     cxt.lineWidth = 5;
 59                     cxt.strokeStyle = "#000";
 60                     cxt.translate(y, y);
 61                     cxt.rotate(i * 6 * Math.PI / 180);
 62                     cxt.beginPath();
 63                     cxt.moveTo(0, -x1);
 64                     cxt.lineTo(0, -x2);
 65                     cxt.closePath();
 66                     cxt.stroke();
 67                     cxt.restore();
 68                 }
 69                 //时针
 70                 cxt.save();
 71                 cxt.lineWidth = 7;
 72                 cxt.strokeStyle = "#000";
 73                 cxt.translate(y, y);
 74                 cxt.rotate(hour * 30 * Math.PI / 180);
 75                 cxt.beginPath();
 76                 cxt.moveTo(0, -x5);
 77                 cxt.lineTo(0, 10);
 78                 cxt.closePath();
 79                 cxt.stroke();
 80                 cxt.restore();
 81                 //分针
 82                 cxt.save();
 83                 cxt.lineWidth = 5;
 84                 cxt.strokeStyle = "#000";
 85                 cxt.translate(y, y);
 86                 cxt.rotate(min * 6 * Math.PI / 180);
 87                 cxt.beginPath();
 88                 cxt.moveTo(0, -x4);
 89                 cxt.lineTo(0, 15);
 90                 cxt.closePath();
 91                 cxt.stroke();
 92                 cxt.restore();
 93                 //秒针
 94                 cxt.save();
 95                 cxt.lineWidth = 3;
 96                 cxt.strokeStyle = "red";
 97                 cxt.translate(y, y);
 98                 cxt.rotate(sec * 6 * Math.PI / 180);
 99                 cxt.beginPath();
100                 cxt.moveTo(0, -x3);
101                 cxt.lineTo(0, 20);
102                 cxt.closePath();
103                 cxt.stroke();
104                 cxt.lineWidth = 3;
105                 cxt.strokeStyle = "red";
106                 cxt.beginPath();
107                 cxt.arc(0, 0, 5, 0, 360, false);
108                 cxt.fillStyle = "gray";
109                 cxt.fill();
110                 cxt.closePath();
111                 cxt.stroke();
112                 cxt.lineWidth = 3;
113                 cxt.strokeStyle = "red";
114                 cxt.fillStyle = "red";
115                 cxt.beginPath();
116                 cxt.arc(0, -x5, 5, 0, 360, false);
117                 cxt.fill();
118                 cxt.closePath();
119                 cxt.stroke();
120                 cxt.restore();
121             }
122 
123             //行走
124             drawClock(500);
125             setInterval("drawClock(500)", 1000);
126         </script>
127     </body>
128 </html>
View Code

 

posted on 2013-12-23 15:30  Kim.zh  阅读(764)  评论(0编辑  收藏  举报