1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title>画布时钟</title>
6 <style>
7 *{margin:0;padding: 0;}
8 canvas{margin:50px auto;border:1px solid #ccc;display: block;}
9 </style>
10 </head>
11 <body>
12 <canvas id="cvs" height="400" width="400"></canvas>
13 <script>
14 var cvs=document.getElementById("cvs")
15 var ctx=cvs.getContext("2d");
16 ctx.beginPath();
17 ctx.arc(200,200,190,0,2*Math.PI,false);
18 ctx.strokeStyle="red";
19 ctx.lineWidth=4;
20 ctx.stroke();
21 ctx.clip();
22 var image=new Image();
23 image.src="img/01.jpg";
24 image.onload=function(){
25 // ctx.drawImage(image,0,0)
26 //创建分针指针
27 function move(){
28 ctx.clearRect(0,0,400,400)
29 ctx.drawImage(image,0,0)
30 //fenzhen
31 for(var j=0;j<60;j++){
32 ctx.save();
33 ctx.linewidth=4;
34 ctx.translate(200,200);
35 ctx.rotate(6*j*Math.PI/180);
36 ctx.beginPath();
37 ctx.moveTo(0,180);
38 ctx.lineTo(0,190);
39 ctx.closePath();
40 ctx.restore();
41 ctx.strokeStyle="blue";
42 ctx.stroke();
43 }
44 //创建时针指针
45 for(var i=0;i<12;i++){
46 ctx.save();
47 ctx.lineWidth=6;
48 ctx.translate(200,200)
49 ctx.rotate(30*i*Math.PI/180)
50 ctx.beginPath();
51 ctx.moveTo(0,170);
52 ctx.lineTo(0,190);
53 ctx.closePath();
54 ctx.restore();
55 ctx.strokeStyle="red";
56 ctx.stroke();
57 }
58 //画时针 x向右为正方向;y向下为正方向
59 var nowDate=new Date();
60 var hour=nowDate.getHours();
61 var min=nowDate.getMinutes();
62 var sec=nowDate.getSeconds();
63 hour=hour>12?hour-12:hour;
64 hour=hour+(min/60);
65 min=min+(sec/60)
66 ctx.save();
67 ctx.lineWidth=10;
68 ctx.strokeStyle="pink";
69 ctx.translate(200,200);
70 ctx.rotate(hour*30*Math.PI/180);
71 ctx.beginPath();
72 ctx.moveTo(0,-120);
73 ctx.lineTo(0,10);
74 ctx.closePath();
75 ctx.stroke();
76 ctx.restore();
77 //画分针
78 ctx.save();
79 ctx.linewidth=8;
80 ctx.strokeStyle="yellow";
81 ctx.translate(200,200);
82 ctx.rotate(min*6*Math.PI/180);
83 ctx.beginPath();
84 ctx.moveTo(0,-140);
85 ctx.lineTo(0,10);
86 ctx.closePath();
87 ctx.stroke();
88 ctx.restore();
89 //画秒针
90 ctx.save();
91 ctx.linewidth=6;
92 ctx.strokeStyle="blue";
93 ctx.translate(200,200);
94 ctx.rotate(sec*6*Math.PI/180);
95 ctx.beginPath();
96 ctx.moveTo(0,-160);
97 ctx.lineTo(0,10);
98 ctx.closePath();
99 ctx.stroke();
100 ctx.restore();
101 }
102 move();
103 setInterval(move,1000)
104 }
105
106 </script>
107 </body>
108 </html>