日期:2014-05-17 浏览次数:20607 次
?
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>HTML5 demo</title> <style> .clock { width: 600px; height: 600px; border: 2px dotted red; border-radius: 20px; background: url('clockface.jpg') no-repeat; } </style> </head> <body> <div class="clock"> <canvas id="canvas" width="600" height="600">Not supported</canvas> </div> </body> <script type="text/javascript"> startClock(); function $(id) { return document.getElementById(id); } function startClock() { setInterval("drawClock()", 1000); } function computePostions() { var time = new Date(); var ss = time.getSeconds() / 60; var mm = (time.getMinutes() + ss) / 60; var hh = (time.getHours() + mm) / 12; return { 'h': (hh * 2 + 1) * Math.PI, 'm': (mm * 2 + 1) * Math.PI, 's': (ss * 2 + 1) * Math.PI }; } function drawClock() { var pos = computePostions(); var ctx = $('canvas').getContext('2d'); ctx.clearRect(0, 0, 600, 600); // hour ctx.save(); ctx.beginPath(); ctx.translate(300, 300); ctx.rotate(pos.h); ctx.strokeStyle = "#FBD10B"; ctx.fillStyle = "#FBD10B"; ctx.lineWidth = "3"; ctx.moveTo(-4, 0); ctx.lineTo(0, 80); ctx.lineTo(4, 0); ctx.lineTo(-4, 0); ctx.fill(); ctx.stroke(); ctx.closePath(); ctx.restore(); // minute ctx.save(); ctx.beginPath(); ctx.translate(300, 300); ctx.rotate(pos.m); ctx.strokeStyle = "#4CB549"; ctx.fillStyle = "#4CB549"; ctx.lineWidth = "2"; ctx.moveTo(-3, 0); ctx.lineTo(0, 120); ctx.lineTo(3, 0); ctx.lineTo(-3, 0); ctx.fill(); ctx.stroke(); ctx.closePath(); ctx.restore(); // second ctx.save(); ctx.beginPath(); ctx.translate(300, 300); ctx.rotate(pos.s); ctx.strokeStyle = "#CB0909"; ctx.fillStyle = "#CB0909"; ctx.lineWidth = "1"; ctx.moveTo(0, 0); ctx.lineTo(0, 180); ctx.lineTo(0, 0); ctx.arc(0, 0, 10, 0, Math.PI * 2, true); ctx.fill(); ctx.stroke(); ctx.closePath(); ctx.restore(); } </script> </html>