
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 * 8 { 9 margin: 0; 10 padding: 0; 11 } 12 #box 13 { 14 width: 500px; 15 height: 500px; 16 margin: 0 auto; 17 position: relative; 18 } 19 #cas 20 { 21 /*background: #ccc;*/ 22 } 23 #time2 24 { 25 color: red; 26 background: black; 27 position: absolute; 28 bottom: 36%; 29 left: 35%; 30 } 31 </style> 32 </head> 33 <body> 34 <div id="box"> 35 <canvas width="400" height="400" id="cas"></canvas> 36 <div id="time2"></div> 37 </div> 38 <script > 39 var cas=document.getElementById('cas'); 40 var ctx=cas.getContext('2d'); 41 var time2=document.getElementById('time2'); 42 function clock () { 43 ctx.beginPath(); 44 ctx.arc(200,200,190,0,2*Math.PI,false); 45 ctx.clip(); 46 // ctx.stroke(); 47 ctx.closePath(); 48 //画圆盘 49 var img=new Image(); 50 img.src='images/1.png'; 51 img.onload=function () { 52 /* 获取时间*/ 53 var time=new Date(); 54 var h=time.getHours(); 55 var m=time.getMinutes(); 56 var s=time.getSeconds(); 57 h=h>=11?h-12:h;//24小时制转换成12小时制 58 h=h+(m/60);//分钟转换成的小时 59 m=m+(s/60);//秒数转换成的分钟 60 time2.innerHTML=parseInt(h)+':'+parseInt(m)+":"+s; 61 /* 画背景图*/ 62 ctx.drawImage(img,0,0,400,400); 63 /*中心原点*/ 64 ctx.beginPath(); 65 ctx.source='over'; 66 ctx.arc(200,200,5,0,360,false); 67 ctx.fillStyle='yellow'; 68 ctx.strokeStyle='pink'; 69 ctx.stroke(); 70 ctx.fill(); 71 ctx.closePath(); 72 73 74 for(var i=0;i<60;i++){//分刻度 75 ctx.save();//保存原始状态 76 ctx.beginPath(); 77 ctx.translate(200,200);//改变中心位置 78 ctx.rotate(6*i*Math.PI/180);//每一个的旋转角度 79 ctx.moveTo(0,-190); 80 ctx.lineTo(0,-180); 81 ctx.strokeStyle='black'; 82 ctx.lineWidth=10; 83 ctx.stroke(); 84 ctx.closePath(); 85 ctx.restore();//恢复初始状态 86 } 87 for(var i=0;i<12;i++){//时刻度 88 ctx.save();//保存原始状态 89 ctx.beginPath(); 90 ctx.translate(200,200);//改变中心位置 91 ctx.rotate(30*i*Math.PI/180);//每一个的旋转角度 92 ctx.moveTo(0,-190); 93 ctx.lineTo(0,-170); 94 ctx.strokeStyle='red'; 95 ctx.lineWidth=10; 96 ctx.stroke(); 97 ctx.closePath(); 98 ctx.restore();//恢复初始状态 99 100 /*时针*/ 101 ctx.save();//保存状态 102 ctx.beginPath(); 103 ctx.translate(200,200); 104 ctx.rotate(h*30*Math.PI/180);//时针旋转的角度 105 ctx.moveTo(0,0); 106 ctx.lineTo(0,-150); 107 ctx.strokeStyle='pink'; 108 ctx.lineWidth=5; 109 ctx.stroke(); 110 ctx.closePath(); 111 ctx.restore(); 112 113 /*分针走动*/ 114 ctx.save();//保存状态 115 ctx.beginPath(); 116 ctx.translate(200,200); 117 ctx.rotate(m*6*Math.PI/180);//分针旋转的角度 118 ctx.moveTo(0,0); 119 ctx.lineTo(0,-165); 120 ctx.strokeStyle='yellow'; 121 ctx.lineWidth=3; 122 ctx.stroke(); 123 ctx.closePath(); 124 ctx.restore(); 125 126 /*秒针走动*/ 127 ctx.save();//保存状态 128 ctx.beginPath(); 129 ctx.translate(200,200); 130 ctx.rotate(s*6*Math.PI/180);//秒针旋转的角度 131 ctx.moveTo(0,0); 132 ctx.lineTo(0,-180); 133 ctx.strokeStyle='blue'; 134 ctx.lineWidth=1; 135 ctx.stroke(); 136 ctx.closePath(); 137 //秒针点 138 ctx.beginPath(); 139 ctx.arc(0,-160,3,0,360,false); 140 ctx.fillStyle='yellow'; 141 ctx.fill(); 142 ctx.restore(); 143 144 } 145 } 146 } 147 clock(); 148 setInterval(clock,1000); 149 </script> 150 </body> 151 </html>