使用js和canvas實現(xiàn)時鐘效果
使用js和canvas寫一個時鐘,供大家參考,具體內容如下
<!DOCTYPE html>`<html lang='en'><head> <meta charset='UTF-8'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>Document</title></head><body> <canvas id=’canvas’ width=’600’ height=’600’ style='border: 1px solid red;'></canvas> <script> /** @type {HTMLCanvasElement} */ let canvas = document.querySelector('#canvas'); let ctx = canvas.getContext('2d'); let deg = Math.PI / 180; let HourR = 100; let MinutesR = 135; let SecondsR = 170; setInterval(function () { canvas.width = canvas.width; ctx.arc(300, 300, 200, 0, Math.PI * 2) ctx.fillStyle = ’rgba(10,100,30,0.2)’ ctx.strokeStyle = ’red’ //獲取當前時間 let dt = new Date() let Hour = dt.getHours() let Minutes = dt.getMinutes() let Seconds = dt.getSeconds() //時鐘 ctx.moveTo(300, 300); let xx = HourR * (Math.sin(Hour * 30 * deg)) let yy = HourR * (Math.cos(Hour * 30 * deg)) ctx.lineTo((300 + xx), (300 - yy)) //分鐘和秒鐘 function move(time, R) {ctx.moveTo(300, 300);xx = R * (Math.sin(time * 6 * deg))yy = R * (Math.cos(time * 6 * deg))ctx.lineTo((300 + xx), (300 - yy)) } //小時指針 for (let m = 0; m < 12; m++) {let xx = 190 * (Math.sin(m * 30 * deg))let yy = 190 * (Math.cos(m * 30 * deg))let xx1 = 200 * (Math.sin(m * 30 * deg))let yy1 = 200 * (Math.cos(m * 30 * deg))ctx.moveTo((300 + xx), (300 - yy));ctx.lineTo((300 + xx1), (300 - yy1)) } move(Seconds, SecondsR) move(Minutes, MinutesR) ctx.fill() ctx.stroke() }, 1000) </script></body></html>
更多JavaScript時鐘特效點擊查看:JavaScript時鐘特效專題
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關文章:
1. 在layer彈出層中通過ajax返回html拼接字符串填充數(shù)據(jù)的方法2. 存儲于xml中需要的HTML轉義代碼3. java volatile案例講解4. asp.net core 中的Jwt(Json Web Token)的使用詳解5. 解決Ajax方式上傳文件報錯"Uncaught TypeError: Illegal invocation"6. jsp實現(xiàn)textarea中的文字保存換行空格存到數(shù)據(jù)庫的方法7. 編寫xml沒有代碼提示的解決方法8. 用xslt將xml解析成xhtml的代碼9. JSP的Cookie在登錄中的使用10. ztree+ajax實現(xiàn)文件樹下載功能
