效果如下:
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width,initial-scale=1"/>
<title>canvas clock</title>
<style type="text/css">
div{
text-align: center;
margin-top: 250px;
}
#clock{
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div>
<canvas id="clock" height="200px" width="200px"></canvas>
</div>
<script type="text/javascript">
var dom=document.getElementById("clock");
var ctx=dom.getContext("2d");
var width=ctx.canvas.width;
var heigth=ctx.canvas.height;
var r=width/2;
//描绘时分秒小数和小数点
function drawBackground(){
ctx.save();
ctx.translate(r,r); //中心原点位置
ctx.beginPath(); //起始位置
ctx.lineWidth=10;
//圆
ctx.arc(0,0,r-5,0,2*Math.PI,false);
ctx.stroke();
var hourNumbers=[3,4,5,6,7,8,9,10,11,12,1,2];
ctx.font="18px Arial";
ctx.textAlign="center";
ctx.textBaseline="middle";
hourNumbers.forEach(function(number,i){
var rad=2*Math.PI/12*i;
var x=Math.cos(rad)*(r-30);
var y=Math.sin(rad)*(r-30);
ctx.fillText(number,x,y);
});
for (var i=0;i<60;i++) {
var rad=2*Math.PI/60*i;
var x=Math.cos(rad)*(r-18);
var y=Math.sin(rad)*(r-18);
ctx.beginPath();
if(i%5===0){
ctx.fillStyle="#000";
ctx.arc(x,y,2,2*Math.PI,false);
}else{
ctx.fillStyle="#ccc";
ctx.arc(x,y,2,2*Math.PI,false);
}
ctx.fill();
}
}
//描绘时针
function drawHour(hour,minute){
ctx.save();
ctx.beginPath();
var rad=2*Math.PI / 12 * hour;
var mrad=2*Math.PI / 12 / 60 * minute;
ctx.rotate(rad + mrad);
ctx.lineWidth=6;
ctx.lineCap="round";
ctx.moveTo(0,10);
ctx.lineTo(0,-r/2);
ctx.stroke();
ctx.restore();
}
//描绘分针
function drawMinute(minute){
ctx.save();
ctx.beginPath();
var rad=2*Math.PI/60*minute;
ctx.rotate(rad);
ctx.lineWidth=3;
ctx.lineCap="round";
ctx.moveTo(0,10);
ctx.lineTo(0,-r+30);
ctx.stroke();
ctx.restore();
}
//描绘秒针
function drawSecond(second){
ctx.save();
ctx.beginPath();
ctx.fillStyle="#C14543";
var rad=2*Math.PI/60*second;
ctx.rotate(rad);
ctx.moveTo(-2,20);
ctx.lineTo(2,20);
ctx.lineTo(1,-r+18);
ctx.lineTo(-1,-r+18)
ctx.fill();
ctx.restore();
}
//中间固定园点
function drawDot(){
ctx.beginPath();
ctx.fillStyle="#fff";
ctx.arc(0,0,3,0,2*Math.PI,false);
ctx.fill();
}
function draw(){
ctx.clearRect(0,0,width,heigth);
var now=new Date();
var hour=now.getHours();
var minute=now.getMinutes();
var second=now.getSeconds();
drawBackground();
drawHour(hour,minute);
drawMinute(minute);
drawSecond(second);
drawDot();
ctx.restore();
}
draw();
setInterval(draw,1000)
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# canvas
# 绘制时钟
# js Canvas绘制圆形时钟效果
# html5 canvas js(数字时钟)实例代码
# javascript结合Canvas 实现简易的圆形时钟
# JS+Canvas绘制时钟效果
# JavaScript html5 canvas绘制时钟效果(二)
# js Canvas实现圆形时钟教程
# JavaScript学习小结之使用canvas画“哆啦A梦”时钟
# canvas仿iwatch时钟效果
# body
# ccc
# solid
# height
# id
# top
# margin
# div
# border
# px
# script
# function
# heigth
# getContext
# translate
# save
# drawBackground
# dom
# var
# javascript
相关文章:
零服务器AI建站解决方案:快速部署与云端平台低成本实践
高性能网站服务器部署指南:稳定运行与安全配置优化方案
网站制作大概多少钱一个,做一个平台网站大概多少钱?
潮流网站制作头像软件下载,适合母子的网名有哪些?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
网站制作报价单模板图片,小松挖机官方网站报价?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
历史网站制作软件,华为如何找回被删除的网站?
如何在西部数码注册域名并快速搭建网站?
如何在宝塔面板中创建新站点?
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
宝塔面板如何快速创建新站点?
网站制作壁纸教程视频,电脑壁纸网站?
怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?
北京网站制作网页,网站升级改版需要多久?
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
怀化网站制作公司,怀化新生儿上户网上办理流程?
网站代码制作软件有哪些,如何生成自己网站的代码?
已有域名能否直接搭建网站?
图册素材网站设计制作软件,图册的导出方式有几种?
如何用5美元大硬盘VPS安全高效搭建个人网站?
制作公司内部网站有哪些,内网如何建网站?
香港服务器选型指南:免备案配置与高效建站方案解析
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
视频网站制作教程,怎么样制作优酷网的小视频?
定制建站平台哪家好?企业官网搭建与快速建站方案推荐
建站之星免费模板:自助建站系统与智能响应式一键生成
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
南宁网站建设制作定制,南宁网站建设可以定制吗?
香港服务器网站卡顿?如何解决网络延迟与负载问题?
网站制作服务平台,有什么网站可以发布本地服务信息?
安徽网站建设与外贸建站服务专业定制方案
建站之星在线客服如何快速接入解答?
贸易公司网站制作流程,出口贸易网站设计怎么做?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
建站之星安装步骤有哪些常见问题?
建站主机如何安装配置?新手必看操作指南
建设网站制作价格,怎样建立自己的公司网站?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
如何在云指建站中生成FTP站点?
制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?
建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
建站之星手机一键生成:多端自适应+小程序开发快速建站指南
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
如何零成本快速生成个人自助网站?
建站DNS解析失败?如何正确配置域名服务器?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
建站之星×万网:智能建站系统+自助建站平台一键生成
*请认真填写需求信息,我们会在24小时内与您取得联系。