实例介绍
【实例简介】
【实例截图】
【核心代码】
<!doctype html>
<html>
<head>
<title>canvas时钟示例</title>
<meta charset='utf-8'>
</head>
<body>
<canvas width='500' height='500' id='clock' style='background="pink";'>
您的浏览器不支持HTML5 canvas标签,无法看到时钟!
</canvas>
<!-- canvas标签要用到javascript脚本来进行操作 -->
<script type="text/javascript">
//获取canvas标签元素
var clock = document.getElementById('clock');
//获取canvas画图环境
var context = clock.getContext('2d');
function drawClock(){
//清除画布 消除秒针移动过程中上一次的路径
context.clearRect(0,0,500,500);
//获取系统时间
var date = new Date();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
var hours = date.getHours();
//系统小时应该为浮点型
hours = minutes/60;
//系统时间为24小时制,要进行转换为12小时制
hours = hours > 12?hours-12:hours;
//canvas时钟画图步骤
//表盘(圆圈颜色为蓝色 空心圆)
context.lineWidth = '10';
context.strokeStyle = 'blue';
context.beginPath();
context.arc(250,250,200,0,360,false);
context.closePath();
context.stroke();
//刻度
//时刻度 在异次元空间进行绘制
for(var i = 0; i < 12; i ){
context.save();
//设置绘画风格
context.lineWidth = 7;
context.strokeStyle = '#000';
//设置0,0点
context.translate(250,250);
//设置绘图角度
context.rotate(i*30*Math.PI/180);
//开始路径
context.beginPath();
//绘线段
context.moveTo(0,-190);
context.lineTo(0,-170);
//关闭路径
context.closePath();
context.stroke();
context.restore();
}
//分刻度 在异次元空间进行绘制
for(var i = 0; i < 60; i ){
context.save();
//设置绘画风格
context.lineWidth = 5;
context.strokeStyle = '#000';
//设置0,0点
context.translate(250,250);
//设置绘图角度
context.rotate(i*6*Math.PI/180);
//开始路径
context.beginPath();
//绘线段
context.moveTo(0,-190);
context.lineTo(0,-180);
//关闭路径
context.closePath();
context.stroke();
context.restore();
}
//时针 在异次元空间进行绘制
context.save();
//设置绘图风格
context.lineWidth = 7;
context.strokeStyle = '#000';
//设置0,0点
context.translate(250,250);
//设置绘图角度
context.rotate(hours*30*Math.PI/180);
//开始路径
context.beginPath();
context.moveTo(0,-140);
context.lineTo(0,10);
//关闭路径
context.closePath();
context.stroke();
context.restore();
//分针 在异次元空间进行绘制
context.save();
//设置绘图风格
context.lineWidth = 5;
context.strokeStyle = '#000';
//设置0,0点
context.translate(250,250);
//设置绘图角度
context.rotate(minutes*6*Math.PI/180);
//开始路径
context.beginPath();
context.moveTo(0,-160);
context.lineTo(0,15);
//关闭路径
context.closePath();
context.stroke();
context.restore();
//秒针 在异次元空间进行绘制
context.save();
//设置绘图风格
context.lineWidth = 3;
context.strokeStyle = 'red';
//设置0,0点
context.translate(250,250);
//设置绘图角度
context.rotate(seconds*6*Math.PI/180);
//开始路径
context.beginPath();
context.moveTo(0,-170);
context.lineTo(0,20);
//关闭路径
context.closePath();
context.stroke();
//对秒针进行装饰
//时针分针秒针交叉处小圆圈
context.fillStyle = 'gray';
context.beginPath();
context.arc(0,0,5,0,360,false);
context.closePath();
context.stroke();
context.fill();
//秒针前段小圆圈
context.beginPath();
context.arc(0,-150,5,0,360,false);
context.closePath();
context.stroke();
context.fill();
context.restore();
}
drawClock();
//让时针分针秒针动起来
setInterval(drawClock,1000);
</script>
</body>
</html>
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论