1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>clock</title> 6 </head> 7 <body> 8 <canvas id="clock" width="500" height="500" style="display:block; margin:50px auto"> 9 您的浏览器不支持canvas标签! 10 </canvas> 11 <script> 12 var clock = document.getElementById(‘clock‘); 13 var ctx = clock.getContext(‘2d‘); 14 function drawClock(){ 15 var today = new Date(); 16 var year = today.getFullYear(); 17 var month = today.getMonth() + 1; 18 var date = today.getDate(); 19 var day = today.getDay(); 20 var hour = today.getHours(); 21 var minute = today.getMinutes(); 22 var second = today.getSeconds(); 23 hour = hour > 12 ? hour - 12 : hour; 24 25 ctx.clearRect(0, 0, 500, 500); 26 27 ctx.fillStyle = ‘#fff‘; 28 ctx.beginPath(); 29 ctx.arc(250, 250, 205, 0, 2*Math.PI); 30 ctx.closePath(); 31 ctx.fill(); 32 33 ctx.strokeStyle = ‘#ddd‘; 34 ctx.lineWidth = 10; 35 ctx.beginPath(); 36 ctx.arc(250, 250, 185, 0, 2*Math.PI); 37 ctx.closePath(); 38 ctx.stroke(); 39 40 ctx.strokeStyle = ‘#96DFF7‘; 41 ctx.lineWidth = 10; 42 ctx.beginPath(); 43 ctx.arc(250, 250, 200, 0, 2*Math.PI); 44 ctx.closePath(); 45 ctx.stroke(); 46 47 ctx.strokeStyle = ‘#96DFF7‘; 48 ctx.lineWidth = 3; 49 ctx.beginPath(); 50 ctx.arc(250, 250, 192, 0, 2*Math.PI); 51 ctx.closePath(); 52 ctx.stroke(); 53 54 ctx.strokeStyle = ‘#09303C‘; 55 ctx.lineWidth = 5; 56 ctx.beginPath(); 57 ctx.arc(250, 250, 205, 0, 2*Math.PI); 58 ctx.closePath(); 59 ctx.stroke(); 60 61 62 // 时刻度 63 for(var i = 0; i < 12; i++) { 64 ctx.save(); 65 ctx.lineWidth = 4; 66 ctx.strokeStyle = ‘#000‘; 67 ctx.translate(250, 250); 68 ctx.rotate(30 * i / 180 * Math.PI); 69 ctx.beginPath(); 70 ctx.moveTo(0, 180); 71 ctx.lineTo(0, 160); 72 ctx.closePath(); 73 ctx.stroke(); 74 ctx.restore(); 75 } 76 // 分刻度 77 for(var i = 0; i < 60; i++) { 78 if(i % 5 != 0){ 79 ctx.save(); 80 ctx.lineWidth = 2; 81 ctx.strokeStyle = ‘#000‘; 82 ctx.translate(250, 250); 83 ctx.rotate(6 * i / 180 * Math.PI); 84 ctx.beginPath(); 85 ctx.moveTo(0, 175); 86 ctx.lineTo(0, 170); 87 ctx.closePath(); 88 ctx.stroke(); 89 ctx.restore(); 90 } 91 } 92 93 // 秒针 94 ctx.save(); 95 ctx.lineWidth = 2; 96 ctx.strokeStyle = "#f00"; 97 ctx.beginPath(); 98 ctx.translate(250, 250); 99 ctx.rotate((second * 6 + 180) / 180 * Math.PI); 100 ctx.moveTo(0, 0); 101 ctx.lineTo(0, 150); 102 ctx.closePath(); 103 ctx.stroke(); 104 ctx.restore(); 105 106 // 分针 107 ctx.save(); 108 ctx.lineWidth = 4; 109 ctx.strokeStyle = "#0ff"; 110 ctx.beginPath(); 111 ctx.translate(250, 250); 112 ctx.rotate((minute * 6 + second * 0.1 + 180) / 180 * Math.PI); 113 ctx.moveTo(0, 0); 114 ctx.lineTo(0, 130); 115 ctx.closePath(); 116 ctx.stroke(); 117 ctx.restore(); 118 119 // 时针 120 ctx.save(); 121 ctx.lineWidth = 6; 122 ctx.strokeStyle = "#000"; 123 ctx.beginPath(); 124 ctx.translate(250, 250); 125 ctx.rotate((hour * 30 + minute * 0.5 + 180) / 180 * Math.PI); 126 ctx.moveTo(0, 0); 127 ctx.lineTo(0, 90); 128 ctx.closePath(); 129 ctx.stroke(); 130 ctx.restore(); 131 132 ctx.fillStyle = "#f00"; 133 ctx.beginPath(); 134 ctx.arc(250, 250, 10, 0, 2 * Math.PI); 135 ctx.closePath(); 136 ctx.fill(); 137 ctx.fillStyle = "#000"; 138 ctx.beginPath(); 139 ctx.arc(250, 250, 8, 0, 2 * Math.PI); 140 ctx.closePath(); 141 ctx.fill(); 142 ctx.fillStyle = "#fff"; 143 ctx.beginPath(); 144 ctx.arc(250, 250, 6, 0, 2 * Math.PI); 145 ctx.closePath(); 146 ctx.fill(); 147 148 } 149 drawClock(); 150 setInterval(drawClock,10); 151 </script> 152 </body> 153 </html>
时间: 2024-10-04 20:11:27