本文实例为大家分享了Canvas绘制圆形时钟的具体代码,供大家参考,具体内容如下
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>canvas-clock</title>
</head>
<body>
<canvas id="canvas" width="500px" height="500px">
你的浏览器不支持该元素!赶紧下载最新版本浏览器或使用其他浏览器!
</canvas>
<script>
//获取到canvas元素
var canvas = document.getElementById('canvas');
//获取canvas中的画图环境
var context = canvas.getContext('2d');
//时钟的大小
function drowClock(){
//钟表的大小:初始值设置
var clockDimensions = 150;
//清理当前画布,以便后期绘制
context.clearRect(0,0,canvas.width,canvas.height);
//绘制表盘
context.beginPath(); //开启新路径
context.lineWidth = clockDimensions/15;
context.strokeStyle = "#A7C0DC";
//绘制表盘圆圈
context.arc(canvas.width/2,canvas.height/2,clockDimensions,0,Math.PI*2,false);
context.stroke();//描边绘制
//绘制表盘的刻度线
for(var i=1;i<=60;i++){
if(i%5==0){
context.save();//保存当前绘制环境
context.beginPath();
context.lineWidth =clockDimensions/30;
context.strokeStyle = "#9AABB1";
//重置坐标原点(0,0)
context.translate(canvas.width/2,canvas.height/2);
//绘制环境旋转方法,以(0,0)为参考点进行旋转
context.rotate(Math.PI*2/60 * i);
context.moveTo(0,clockDimensions-clockDimensions/30);
context.lineTo(0,clockDimensions-clockDimensions/8);
context.stroke();
context.beginPath();
context.textAlign = 'center';
context.textBaseline = 'middle';
context.font = 'bold '+Math.floor(clockDimensions/10)+'px 宋体';
context.fillStyle = "#03671F";
context.fillText(i/5,0,0-(clockDimensions-clockDimensions/5));
context.fill();
context.restore();//恢复当前保存的绘制环境
}else {
context.save();
context.beginPath();
context.lineWidth = Math.floor(clockDimensions/100);
context.strokeStyle = "#8EA5AB";
//重置坐标原点(0,0)
context.translate(canvas.width / 2, canvas.height / 2);
//绘制环境旋转方法,以(0,0)为参考点进行旋转
context.rotate(Math.PI * 2 / 60 * i);
context.moveTo(0, clockDimensions-clockDimensions/20);
context.lineTo(0, clockDimensions-clockDimensions/10);
context.stroke();
context.restore();
}
}
//获取当前windows的时间
var now = new Date();
var sec = now.getSeconds();
var min = now.getMinutes();
var hour = now.getHours();
//获取精准的小时数
hour = hour +min/60 + sec/3600;
//转换为12进制
hour = hour>12?(hour-12):hour;
//获取精准的分钟数
min = min + sec/60;
//绘制时针
context.save();
context.beginPath();
context.lineWidth = clockDimensions/30;
context.strokeStyle = "#596C74";
//重置坐标原点(0,0)
context.translate(canvas.width / 2, canvas.height / 2);
//绘制环境旋转方法,以(0,0)为参考点进行旋转
context.rotate(Math.PI * 2 / 12 * hour);
context.moveTo(0, clockDimensions/10);
context.lineTo(0, 0-clockDimensions/2);
context.stroke();
context.restore();
//绘制分针
context.save();
context.beginPath();
context.lineWidth = clockDimensions/40;
context.strokeStyle = "#596C74";
//重置坐标原点(0,0)
context.translate(canvas.width / 2, canvas.height / 2);
//绘制环境旋转方法,以(0,0)为参考点进行旋转
context.rotate(Math.PI * 2 / 60 * min);
context.moveTo(0, clockDimensions/8);
context.lineTo(0, 0-(clockDimensions-clockDimensions/5));
context.stroke();
context.restore();
//绘制秒针
context.save();
//重置坐标原点(0,0)
context.translate(canvas.width / 2, canvas.height / 2);
context.beginPath();
context.lineWidth = clockDimensions/50;
context.strokeStyle = "#738B93";
//绘制环境旋转方法,以(0,0)为参考点进行旋转
context.rotate(Math.PI * 2 / 60 * sec);
context.moveTo(0, clockDimensions/6);
context.lineTo(0, 0-(clockDimensions-clockDimensions/10));
context.stroke();
//修饰秒针
context.beginPath();
context.arc(0,0-(clockDimensions-clockDimensions/3),clockDimensions/20,0,Math.PI*2,true);
context.fillStyle = "#2FFC14";
context.fill();
context.lineWidth = clockDimensions/50;
context.stroke();
//修饰圆心
context.beginPath();
context.fillStyle = "#738B93";
context.arc(0,0,clockDimensions/20,0,Math.PI*2,true);
context.fill();
context.restore();
}
drowClock();
setInterval(drowClock,1000);
</script>
</body>
</html>
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# Canvas
# 时钟
# JavaScript Canvas绘制圆形时钟效果
# js Canvas绘制圆形时钟效果
# js Canvas实现圆形时钟教程
# javascript结合Canvas 实现简易的圆形时钟
# js计时事件实现圆形时钟
# 不支持
# 大家分享
# 转换为
# 具体内容
# 大家多多
# 宋体
# 后期
# 下载最新版本
# getElementById
# context
# getContext
# function
# text
# height
# script
# document
# var
# drowClock
# A7C0DC
# strokeStyle
相关文章:
建站为何优先选择香港服务器?
网站制作难吗安全吗,做一个网站需要多久时间?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
如何选择香港主机高效搭建外贸独立站?
,在苏州找工作,上哪个网站比较好?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
,南京靠谱的征婚网站?
重庆市网站制作公司,重庆招聘网站哪个好?
如何通过商城自助建站源码实现零基础高效建站?
如何在景安服务器上快速搭建个人网站?
ui设计制作网站有哪些,手机UI设计网址吗?
宝盒自助建站智能生成技巧:SEO优化与关键词设置指南
建站之星客服服务时间及联系方式如何?
网站制作多少钱一个,建一个论坛网站大约需要多少钱?
建站之星免费版是否永久可用?
Python多线程使用规范_线程安全解析【教程】
常州自助建站工具推荐:低成本搭建与模板选择技巧
,怎么在广州志愿者网站注册?
西安制作网站公司有哪些,西安货运司机用的最多的app或者网站是什么?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何在Golang中引入测试模块_Golang测试包导入与使用实践
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
高端智能建站公司优选:品牌定制与SEO优化一站式服务
如何在阿里云域名上完成建站全流程?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
如何获取开源自助建站系统免费下载链接?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
高防服务器租用指南:配置选择与快速部署攻略
如何在万网主机上快速搭建网站?
深圳网站制作的公司有哪些,dido官方网站?
建站之星伪静态规则如何设置?
网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?
北京的网站制作公司有哪些,哪个视频网站最好?
如何选择CMS系统实现快速建站与SEO优化?
SQL查询语句优化的实用方法总结
高性能网站服务器部署指南:稳定运行与安全配置优化方案
内部网站制作流程,如何建立公司内部网站?
如何使用Golang table-driven基准测试_多组数据测量函数效率
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
定制建站流程解析:需求评估与SEO优化功能开发指南
建站之星后台密码如何安全设置与找回?
北京网站制作网页,网站升级改版需要多久?
,制作一个手机app网站要多少钱?
网站制作服务平台,有什么网站可以发布本地服务信息?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
英语简历制作免费网站推荐,如何将简历翻译成英文?
如何实现建站之星域名转发设置?
*请认真填写需求信息,我们会在24小时内与您取得联系。