canvas動態時鐘效果
分享一段程式碼例項,它實現了動態時鐘效果。
此時鐘能夠動態的顯示當前時間,並自動走動。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> canvas { border:2px dotted #ccc; } </style> </head> <body> <canvas id="canvas" width="550" height="450"></canvas> <script type="text/javascript"> var canvas = document.getElementById('canvas'); var context = canvas.getContext('2d'); function clock() { var now = new Date(); var ctx = document.getElementById('canvas').getContext('2d'); ctx.save(); ctx.clearRect(0, 0, 150, 150); ctx.translate(75, 75); ctx.scale(0.4, 0.4); ctx.rotate(-Math.PI / 2); ctx.strokeStyle = "black"; ctx.fillStyle = "white"; ctx.lineWidth = 8; ctx.lineCap = "round"; // Hour marks ctx.save(); for (var i = 0; i < 12; i++) { ctx.beginPath(); ctx.rotate(Math.PI / 6); ctx.moveTo(100, 0); ctx.lineTo(120, 0); ctx.stroke(); } ctx.restore(); // Minute marks ctx.save(); ctx.lineWidth = 5; for (i = 0; i < 60; i++) { if (i % 5 != 0) { ctx.beginPath(); ctx.moveTo(117, 0); ctx.lineTo(120, 0); ctx.stroke(); } ctx.rotate(Math.PI / 30); } ctx.restore(); var sec = now.getSeconds(); var min = now.getMinutes(); var hr = now.getHours(); hr = hr >= 12 ? hr - 12 : hr; ctx.fillStyle = "black"; // write Hours ctx.save(); ctx.rotate(hr * (Math.PI / 6) + (Math.PI / 360) * min + (Math.PI / 21600) * sec) ctx.lineWidth = 14; ctx.beginPath(); ctx.moveTo(-20, 0); ctx.lineTo(80, 0); ctx.stroke(); ctx.restore(); // write Minutes ctx.save(); ctx.rotate((Math.PI / 30) * min + (Math.PI / 1800) * sec) ctx.lineWidth = 10; ctx.beginPath(); ctx.moveTo(-28, 0); ctx.lineTo(112, 0); ctx.stroke(); ctx.restore(); // Write seconds ctx.save(); ctx.rotate(sec * Math.PI / 30); ctx.strokeStyle = "#D40000"; ctx.fillStyle = "#D40000"; ctx.lineWidth = 6; ctx.beginPath(); ctx.moveTo(-30, 0); ctx.lineTo(83, 0); ctx.stroke(); ctx.beginPath(); ctx.arc(0, 0, 10, 0, Math.PI * 2, true); ctx.fill(); ctx.beginPath(); ctx.arc(95, 0, 10, 0, Math.PI * 2, true); ctx.stroke(); ctx.fillStyle = "rgba(0,0,0,0)"; ctx.arc(0, 0, 3, 0, Math.PI * 2, true); ctx.fill(); ctx.restore(); ctx.beginPath(); ctx.lineWidth = 14; ctx.strokeStyle = '#325FA2'; ctx.arc(0, 0, 142, 0, Math.PI * 2, true); ctx.stroke(); ctx.restore(); window.requestAnimationFrame(clock); } window.requestAnimationFrame(clock); </script> </body> </html>
相關文章
- canvas圓形時鐘效果Canvas
- js年月日小時分鐘秒動態時鐘效果JS
- canvas實現的圓形時鐘效果Canvas
- canvas繪製圓盤走動鐘錶效果Canvas
- canvas實現的圓形走動鐘錶效果Canvas
- jquery和css3實現的動態時鐘效果jQueryCSSS3
- canvas實現的絢麗的電子時鐘效果Canvas
- JavaScript 動態數字時鐘JavaScript
- JavaScript動態圓形鐘錶效果詳解JavaScript
- css3動態圓形鐘錶效果CSSS3
- canvas原型鐘錶效果程式碼例項Canvas原型
- 最為簡單的動態數字時鐘效果程式碼例項
- canvas小球擺動效果Canvas
- canvas實現具有粒子效果的動態進度條Canvas
- canvas標籤clock(時鐘)案例Canvas
- html5canvas畫時鐘HTMLCanvas
- canvas繪製鐘錶效果程式碼例項Canvas
- canvas實現的動態心形效果程式碼例項Canvas
- canvas小球落地彈動效果Canvas
- linux shell實現動態時鐘Linux
- canvas實現的鐘表效果程式碼例項Canvas
- 時間戳轉化為動態時鐘--moment時間戳
- canvas水平勻速運動效果Canvas
- javascript實現的動態時間日期效果JavaScript
- canvas擺動效果程式碼例項Canvas
- canvas實現的圓形鐘錶效果程式碼例項Canvas
- canvas繪製太陽系運動效果Canvas
- javascript小時、分鐘和秒倒數計時效果JavaScript
- 實時變化的時鐘效果程式碼例項
- 運動的時鐘
- canvas小球碰壁效果Canvas
- canvas矩形拖拽效果Canvas
- canvas簽名效果Canvas
- 用Python實現一個實時運動的大掛鐘效果Python
- CSS3圓形時鐘效果程式碼CSSS3
- Swift如何純程式碼實現時鐘效果Swift
- 多角度實現有趣的時鐘效果!
- css動態邊框效果CSS