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
- canvas繪製圓盤走動鐘錶效果Canvas
- canvas原型鐘錶效果程式碼例項Canvas原型
- JavaScript動態圓形鐘錶效果詳解JavaScript
- canvas小球擺動效果Canvas
- 很火的時鐘效果
- canvas水平勻速運動效果Canvas
- 時間戳轉化為動態時鐘--moment時間戳
- canvas模擬eharts首頁動畫效果Canvas動畫
- canvas簽名效果Canvas
- canvas矩形拖拽效果Canvas
- canvas小球碰壁效果Canvas
- 用Python實現一個實時運動的大掛鐘效果Python
- Swift如何純程式碼實現時鐘效果Swift
- CSS3圓形時鐘效果程式碼CSSS3
- canvas實現波浪效果Canvas
- canvas蔚藍星空效果Canvas
- canvas繪製流星效果Canvas
- 5分鐘學會Vue動畫效果Vue動畫
- 運動的時鐘
- 時鐘——CSS 動畫CSS動畫
- JavaScript 動態圓形鐘錶JavaScript
- canvas設定陰影效果Canvas
- canvas簡單畫板效果Canvas
- canvas繪製風車效果Canvas
- canvas 例項之鬧鐘Canvas
- canvas繪圖之鐘表Canvas繪圖
- CSS動畫篇之炫酷時鐘之時鐘牆CSS動畫
- 行走的時鐘動畫動畫
- OneClock的翻頁時鐘效果是如何實現的
- CSS 線條環形動態運動效果CSS
- Canvas系列之一——濾鏡效果Canvas
- canvas環形進度條效果Canvas
- canvas實現 漂亮的下雨效果Canvas
- canvas立體效果的圓環Canvas
- canvas漫天飛雪效果程式碼Canvas
- canvas具有漸變效果的矩形Canvas
- canvas透明度的矩形效果Canvas