公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
很多博客都一个圆形时钟摆件,看起来很炫。今天我借助HTML5和Canvas为大家实现一款会动的圆形时钟。
在学习本文之前,你需要对HTML5和Canvas有一定的基础知识。本案例的代码非常精简,总代码100行左右。下面我们先看看该时钟动画的运行效果。
下面是该案例的实现源码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>HTML5 Canvas 圆形时钟动画|业余草:www.xttblog.com</title> <style type="text/css"> #myCanvas{ display: block; margin:10px auto; } </style> </head> <body> <canvas id="myCanvas" width="400" height="400"></canvas> <script type="text/javascript"> var myCanvas = document.getElementById('myCanvas'); var c = myCanvas.getContext('2d'); function clock(){ c.clearRect(0,0,400,400); var data = new Date(); var sec =data.getSeconds(); var min =data.getMinutes(); var hour=data.getHours(); //业余草:www.xttblog.com c.save(); c.translate(200,200); c.rotate(-Math.PI/2); //业余草:www.xttblog.com //分钟刻度线 for(var i=0;i<60;i++){ //画12个刻度线 c.beginPath(); c.strokeStyle = "#f00"; c.lineWidth = 5 ; c.moveTo(117,0); c.lineTo(120,0); c.stroke(); c.rotate(Math.PI/30); //每个6deg画一个时钟刻度线 c.closePath(); } //业余草:www.xttblog.com //时钟刻度线 for(var i=0;i<12;i++){ //画12个刻度线 c.beginPath(); c.strokeStyle = "#000"; c.lineWidth = 8 ; c.moveTo(100,0); c.lineTo(120,0); c.stroke(); c.rotate(Math.PI/6); //每个30deg画一个时钟刻度线 c.closePath(); } //外表盘 c.beginPath(); c.strokeStyle = "pink"; c.arc(0,0,145,0,Math.PI*2); c.lineWidth = 12 ; c.stroke(); c.closePath(); //业余草:www.xttblog.com //画时针 hour = hour>12?hour-12:hour; //console.log(hour); c.beginPath(); c.save(); c.rotate(Math.PI/6*hour+Math.PI/6*min/60+Math.PI/6*sec/3600); c.strokeStyle = "yellowgreen"; c.lineWidth = 4 ; c.moveTo(-20,0); c.lineTo(50,0); c.stroke(); c.restore(); c.closePath(); //业余草:www.xttblog.com //画分针 //console.log(min); c.beginPath(); c.save(); c.rotate(Math.PI/30*min+Math.PI/30*sec/60); c.strokeStyle = "springgreen"; c.lineWidth = 3 ; c.moveTo(-30,0); c.lineTo(70,0); c.stroke(); c.restore(); c.closePath(); //画秒针 c.beginPath(); c.save(); c.rotate(Math.PI/30*sec); c.strokeStyle = "red"; c.lineWidth = 2 ; c.moveTo(-40,0); c.lineTo(120,0); c.stroke(); c.restore(); c.closePath(); c.restore(); } clock(); setInterval(clock,1000); </script> </body> </html>
喜欢的朋友可以自行的将源码保存到文件中运行看看效果。
最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » HTML5+Canvas实现一款圆形时钟动画特效