700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 如何用canvas绘制钟表 – CSS – 前端 css里面控制 点击按钮变色

如何用canvas绘制钟表 – CSS – 前端 css里面控制 点击按钮变色

时间:2019-03-05 06:54:00

相关推荐

如何用canvas绘制钟表 – CSS – 前端 css里面控制 点击按钮变色

<!DOCTYPE html>

<html>

<head>

<meta charset=”utf-8″ />

<title>HTML5 timer</title>

<script src=”/jquery/3.2.1/jquery.min.js”></script>

<style>

.clocks {height: 500px;margin: 25px auto;position: relative;width: 500px; }</style> </head> <body> <header> <h2>HTML5 timer</h2> </header> <div class=”clocks”> <canvas id=”canvas” width=”500″ height=”500″></canvas> </div> </body></html>

<script>var canvas, ctx;

var clockRadius = 250;var clockImage;

function clear() {ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);}function drawScene() {clear();var date = new Date(); var hours = date.getHours(); var minutes = date.getMinutes(); var seconds = date.getSeconds(); hours = hours > 12 ? hours – 12 : hours; var hour = hours + minutes / 60; var minute = minutes + seconds / 60; ctx.save();ctx.drawImage(clockImage, 0, 0, 500, 500); ctx.translate(canvas.width / 2, canvas.height / 2); ctx.beginPath(); ctx.font = ’36px Arial’; ctx.fillStyle = ‘#000’; ctx.textAlign = ‘center’; ctx.textBaseline = ‘middle’; for (var n = 1; n <= 12; n++) { var theta = (n – 3) * (Math.PI * 2) / 12; var x = clockRadius * 0.9 * Math.cos(theta); var y = clockRadius * 0.9 * Math.sin(theta); ctx.fillText(n, x, y); } ctx.save(); var theta = (hour – 3) * 2 * Math.PI / 12; ctx.rotate(theta); ctx.beginPath(); ctx.moveTo(-15, -5); ctx.lineTo(-15, 5); ctx.lineTo(clockRadius * 0.5, 1); ctx.lineTo(clockRadius * 0.5, -1); ctx.fill(); ctx.restore(); ctx.save(); var theta = (minute – 15) * 2 * Math.PI / 60; ctx.rotate(theta); ctx.beginPath(); ctx.moveTo(-15, -4); ctx.lineTo(-15, 4); ctx.lineTo(clockRadius * 0.8, 1); ctx.lineTo(clockRadius * 0.8, -1); ctx.fill(); ctx.restore(); ctx.save(); var theta = (seconds – 15) * 2 * Math.PI / 60; ctx.rotate(theta); ctx.beginPath(); ctx.moveTo(-15, -3); ctx.lineTo(-15, 3); ctx.lineTo(clockRadius * 0.9, 1); ctx.lineTo(clockRadius * 0.9, -1); ctx.fillStyle = ‘#0f0’; ctx.fill(); ctx.restore(); ctx.restore(); ctx.beginPath(); //画笔开始 ctx.lineWidth = 5; //设置画笔的线宽 ctx.strokeStyle=”blue”; //设置画笔的颜色 ctx.arc(250,250,248,0,360,false); //绘制圆形,坐标250,250 半径200,整圆(0-360度),false表示顺时针 ctx.stroke(); //绘图 ctx.closePath(); //结束画布}$(function(){ canvas = document.getElementById(‘canvas’); ctx = canvas.getContext(‘2d’); clockImage = new Image(); setInterval(drawScene, 1000);});</script>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。