展开全部
代码如下:
canvas实例--制作时钟您的浏览器版本太低啦!可以换了!
//获取canvas
var canvas = document.getElementById("canvas");
//设置环境
var cxt = canvas.getContext("2d");
//制作时钟的函数
function DrawClock() {
//清除画布
cxt.clearRect(0,0,500,500);
//获取当前时间的时,分,秒
var now = new Date();
var hour = now.getHours();
var min = now.getMinutes();
var sec = now.getSeconds();
//小时必须获取浮点型(小时+分数--->转化为的小时)
hour = hour + min / 60;
//将24小时转换为12小时
hour = hour > 12 ? hour - 12 : hour;
//制作表盘
cxt.beginPath();
cxt.lineWidth = 10;
cxt.strokeStyle = "#ABCDEF";
cxt.arc(250, 250, 200, 0, 360, false);
cxt.stroke();
cxt.closePath();
//刻度
//时针
for (var i = 0; i < 12; i++) {
cxt.save();
cxt.lineWidth = 7;
cxt.strokeStyle = "red";
//设置0,0点
cxt.translate(250, 250);
//再设置旋转角度
cxt.rotate(i * 30 * Math.PI / 180);
cxt.beginPath();
cxt.moveTo(0, -170);
cxt.lineTo(0, -190);
cxt.closePath();
cxt.stroke();
cxt.restore();
}
//分针
for (var i = 0; i < 60; i++) {
//为避免不同颜色的重叠,
//在时针刻度与分针刻度重叠的位置,不画分针
if (i % 5 == 0) continue;
cxt.save();
//设置刻度粗细
cxt.lineWidth = 5;
cxt.strokeStyle = "purple";
//设置画布的0,0点
cxt.translate(250, 250);
//设置旋转角度
cxt.rotate(i * 6 * Math.PI / 180);
//画分针刻度
cxt.beginPath();
cxt.moveTo(0, -180);
cxt.lineTo(0, -190);
cxt.closePath();
cxt.stroke();
cxt.restore();
}
//时针
cxt.save();
//设置时针风格
cxt.lineWidth = 7;
cxt.strokeStyle = "pink";
//设置异次元空间的0,0点
cxt.translate(250, 250);
//设置旋转角度
cxt.rotate(hour * 30 * Math.PI / 180);
cxt.beginPath();
cxt.moveTo(0, -140);
cxt.lineTo(0, 10);
cxt.closePath();
cxt.stroke();
cxt.restore();
//分针
cxt.save();
//设置分针风格
cxt.lineWidth = 5;
cxt.strokeStyle = "orange";
//设置异次元空间的0,0点
cxt.translate(250, 250);
//设置旋转角度
cxt.rotate(min * 6 * Math.PI / 180);
cxt.beginPath();
cxt.moveTo(0, -160);
cxt.lineTo(0, 15);
cxt.closePath();
cxt.stroke();
cxt.restore();
//秒针
cxt.save();
//风格
cxt.strokeStyle = "yellow";
cxt.lineWidth = 3;
//重置0,0点
cxt.translate(250, 250);
//设置旋转角度
cxt.rotate(sec*6*Math.PI/180);
//画图
cxt.beginPath();
cxt.moveTo(0, -170);
cxt.lineTo(0, 20);
cxt.stroke();
//画出时针,分针,秒针的交叉点
cxt.beginPath();
cxt.arc(0, 0, 5, 0, 360, false);
cxt.closePath();
//设置填充样式
cxt.fillStyle = "blue";
cxt.fill();
//设置笔触样式--->秒针已设置
cxt.stroke();
//设置秒针前端的小圆点
cxt.beginPath();
cxt.arc(0, -150, 5, 0, 360, false);
cxt.closePath();
//设置填充样式
cxt.fillStyle = "blue";
cxt.fill();
//设置笔触样式
cxt.stroke();
cxt.closePath();
cxt.restore();
}
//调用函数
DrawClock();
//设置时钟转动起来
setInterval(DrawClock, 1000);
已赞过
已踩过<
你对这个回答的评价是?
评论
收起