帮助中心
获取牛币
联系我们
关于我们
版权声明
素材牛首页
微博登录
QQ登录
微信扫码登录
注册
登录
新浪微博
QQ登陆
微信登录
热门搜索:
小程序
支付
Java
后台模板
上传
商城模板
jQuery
手机
Thinkphp
微信
Vue.js
首 页
网页特效
整站源码
PHP实例
网站模版
工具箱
常用代码
论坛
游戏源码
资源分享
当前位置:
首页
»
精选常用代码
» Canvas时钟效果
Canvas时钟效果
浏览:444次
-
评论:0次
-
发布时间:2017-07-10
Html
Css
Js
body,html { margin:0; padding:0; } canvas { display:block; margin:20px auto; border:1px dashed #999; }
var dom = document.getElementById("can"); var can = dom.getContext("2d"); can.translate(250, 250); can.save(); setInterval(clock, 1000); // clock(); function clock() { var nowDate = new Date(); var dayH = nowDate.getHours(); var dayM = nowDate.getMinutes(); var dayS = nowDate.getSeconds(); can.clearRect(-250, -250, dom.width, dom.height); can.restore(); can.save(); clockPlane(); //画表盘 scale(); //画刻度 hour(dayH, dayM, dayS); //画时针 minute(dayM); //画分针 second(dayS); //画秒针 dot(); } //画表盘 function clockPlane() { can.beginPath(); //每次画组件另起一行,以确保组件之间不会相互干扰 can.strokeStyle = "#0c9fe3"; can.lineWidth = 15; can.arc(0, 0, 165, 0, 2 * Math.PI); can.closePath(); //封闭路径 can.stroke(); } //画刻度 function scale() { can.save(); //保存画布初始状态 can.beginPath(); can.strokeStyle = "#000"; can.lineWidth = 5; //画分刻度 for (var i = 0; i < 60; i++) { can.rotate(-(2 / 60) * Math.PI); can.moveTo(0, 140); can.lineTo(0, 150); can.stroke(); } //画时刻度 for (var i = 0; i < 12; i++) { can.lineWidth = 5; can.rotate(-(2 / 12) * Math.PI); can.moveTo(0, 130); can.lineTo(0, 150); can.stroke(); } } //画时针 function hour(h, m, s) { var ds = 12 * 60 * 60; //时针旋转基数 var ns = h * 60 * 60 + m * 60 + s; //通过时分秒来计算总共有多少秒 can.beginPath(); //新建图层 can.restore(); //将画布恢复成初始状态 can.save(); //保存初始状态 can.strokeStyle = "#000"; can.rotate((2 / ds) * ns * Math.PI); can.lineWidth = 7; can.moveTo(0, 20); can.lineTo(0, -70); can.stroke(); } //画分针 function minute(m) { can.restore(); //恢复画布成初始状态 can.save(); //保存画布初始状态 can.beginPath(); //新建图层 can.strokeStyle = "#000"; can.rotate((2 / 60) * m * Math.PI); can.lineWidth = 3; can.moveTo(0, 25); can.lineTo(0, -100); can.stroke(); } //画秒针 function second(s) { can.restore(); //恢复画布初始状态 can.save(); //保存画布初始状态 can.beginPath(); //新建图层 can.rotate((2 / 60) * s * Math.PI); can.lineWidth = 1; can.strokeStyle = "#f00"; can.moveTo(0, 30); can.lineTo(0, -120); can.stroke(); } //画点 function dot() { can.beginPath(); can.fillStyle = "#f00"; can.arc(0, 0, 4, 0, 2 * Math.PI); can.closePath(); can.fill(); }
↑上面代码改变,会自动显示代码结果
jQuery调用版本:
1.11.3
<!doctype html><html><head><meta charset="utf-8"><title>Canvas时钟效果-www.sucainiu.com</title><script src="https://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script><style>
</style></head><body>
<script>
</script>
</body></html>
立即下载
收藏
积分说明:注册即送10牛币,每日签到可获得5牛币,成为VIP会员可永久免牛币下载!
充值积分
充值会员
更多说明»
代码描述:canvas时钟效果,注释全
jQuery列表分多次展开
纯CSS水平三级导航
讨论这个常用代码(0)
回答他人问题或分享心得会奖励牛币
〒_〒 居然一个评论都没有……
文明上网,理性发言! 😉 阿里云幸运券,
戳我领取
发表评论
提交回复
我的积分余额:
0
已下载次数:
444
所需牛币:
5
开始下载
牛币获取:
签到、评论、充值
» 在线充值
(10牛币=1元)
成为VIP可永久免积分下载全部常用代码
» 查看详情
VIP
客服
签到
充值