》》canvas时钟

时间:2023-03-08 21:37:56
》》canvas时钟
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>CANVAS时钟</title>
<style>
div{
margin: 0 auto;
width:500px;
height: 500px;
}
body{
/*background: url(img/u0.jpg) no-repeat center;
-webkit-background-size: cover;
background-size: cover;*/
} +
</style> </head>
<body>
<div>
<img src="img/u0.jpg" style="display: none;">
<canvas id="canvas" width="500" height="500"></canvas>
</div> </body>
<script>
var canvas=document.getElementById("canvas");
var cxt=canvas.getContext("2d"); function clock(){ var date=new Date();
var hour=date.getHours();
var min=date.getMinutes();
var sec=date.getSeconds();
hour=hour>24?hour-12:hour;
min=min<10?"0"+min:min;
sec=sec<10?"0"+sec:sec;
cxt.clearRect(0,0,canvas.width,canvas.height); //圆
cxt.strokeStyle="#00ffff";
cxt.lineWidth=1;
cxt.beginPath();
cxt.arc(250,250,200,0,2*Math.PI,true);
var img=new Image();
img.src="img/h.jpg"; cxt.clip();
cxt.drawImage(img,0,0,500,500);
cxt.stroke();
cxt.restore();
cxt.save();
cxt.translate(250,250);
cxt.strokeStyle="fuchsia";
cxt.lineWidth=7;
//画时针
for (var i=0;i<12;i++) {
cxt.rotate(30*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-195);
cxt.lineTo(0,-175);
cxt.closePath();
cxt.stroke();
}
cxt.restore();
cxt.save();
cxt.translate(250,250);
cxt.strokeStyle="#ffff00";
cxt.lineWidth=5;
//分针
for (var i=0;i<60;i++) {
cxt.rotate(6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-195);
cxt.lineTo(0,-190);
cxt.closePath();
cxt.stroke(); }
//时针
cxt.restore();
cxt.save();
cxt.lineWidth=7;
cxt.strokeStyle="mediumorchid";
cxt.translate(250,250);
cxt.rotate(hour*30*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-130);
cxt.lineTo(0,10);
cxt.closePath();
cxt.stroke();
cxt.restore();
//分针
cxt.save();
cxt.lineWidth=5;
cxt.strokeStyle="#fff00";
cxt.translate(250,250);
cxt.rotate(min*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-150);
cxt.lineTo(0,10);
cxt.closePath();
cxt.stroke();
cxt.restore();
//秒针
cxt.save();
cxt.lineWidth=3;
cxt.strokeStyle="#ff0000";
cxt.translate(250,250);
cxt.rotate(sec*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-170);
cxt.lineTo(0,10);
cxt.closePath();
cxt.stroke(); cxt.beginPath();
cxt.arc(0,0,7,0,2*Math.PI,true);
cxt.closePath();
cxt.strokeStyle="ff0000";
cxt.fillStyle="#ffff00";
cxt.fill();
cxt.stroke(); cxt.beginPath();
cxt.arc(0,-140,7,0,2*Math.PI,true);
cxt.closePath();
cxt.strokeStyle="ff0000";
cxt.fillStyle="#ffff00";
cxt.fill();
cxt.stroke();
cxt.restore(); cxt.save();
cxt.beginPath();
var time = hour+":"+min+":"+sec;
cxt.font="18px 微软雅黑";
cxt.textAlign="center";
cxt.fillStyle="darkorchid";
cxt.fillText(time,250,400);
cxt.restore(); } clock(); setInterval(clock,1000); </script>
</html>