JS+H5 Canvas实现时钟效果


Posted in Javascript onJuly 20, 2018

用JavaScript+Canvas来实现最简单的时钟效果,供大家参考,具体内容如下

效果图:

JS+H5 Canvas实现时钟效果

先看html代码:

<html>
 <head>
 <meta charset="UTF-8">
 <title></title>
 <script type="text/javascript" src="js/demo3.js" ></script>
 </head>
 <body>
 <canvas id = "canvas"></canvas>
 </body>
</html>

JavaScript代码:

var canvas,context;
function draw(){//定义划时钟的方法
 var data = new Date();
 var hHoure = data.getHours();
 var mMin = data.getMinutes();
 var sSec = data.getSeconds();
 var hValue = (hHoure*30+mMin/2-90)*Math.PI/180; 
 var mValue = (mMin*6-90)*Math.PI/180;
 var sValue = (sSec*6 -90)*Math.PI/180;
 var x = 200,y = 200,r = 150;
 
 context.clearRect(0,0,canvas.width,canvas.height);
 context.moveTo(x,y);
 context.arc(x,y,r,0,6*Math.PI/180,false);
 //
 context.beginPath();
 context.lineWidth = 1;
 for(var i = 0;i<60;i++){
 context.moveTo(x,y);
 context.arc(x,y,r,6*i*Math.PI/180,6*(i+1)*Math.PI/180,false);
 }
 context.closePath();
 context.stroke();
 //
 context.beginPath();
 context.fillStyle = "white";
 context.moveTo(x,y);
 context.arc(x,y,r/1.1,-0,2*Math.PI,false);
 context.closePath();
 context.fill();
 // 
 context.beginPath();
 context.lineWidth = 3;
 for(var i = 0;i<12;i++){
 context.moveTo(x,y);
 context.arc(x,y,r,30*i*Math.PI/180,30*(i+1)*Math.PI,false);
 }
 context.closePath();
 context.stroke();
 //
 context.beginPath();
 context.fillStyle = "white";
 context.moveTo(x,y);
 context.arc(x,y,r/1.12,0,2*Math.PI,false);
 context.closePath();
 context.fill();
 
 context.beginPath();
 context.fillStyle = "black";
 context.moveTo(x,y);
 context.arc(x,y,r/30,0,2*Math.PI,false);
 context.fill(); 
 //
 context.beginPath();
 context.lineWidth = 5;
 context.moveTo(x,y);
 context.arc(x,y,r/2.5,hValue,hValue,false);
 context.stroke();
 //
 context.beginPath();
 context.lineWidth = 3;
 context.moveTo(x,y);
 context.arc(x,y,r/2,mValue,mValue,false);
 context.stroke(); 
 //
 context.beginPath();
 context.lineWidth = 2;
 context.moveTo(x,y);
 context.arc(x,y,r/1.6,sValue,sValue,false);
 context.stroke();
}
window.onload = function(){
 canvas = document.getElementById('canvas');
 context = canvas.getContext('2d');
 canvas.height = 500;
 canvas.width = 500;
 setInterval(draw,1000); 
 draw(); 
}

更多JavaScript时钟特效点击查看:JavaScript时钟特效专题

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 检测浏览器和操作系统的脚本
Dec 26 Javascript
JS循环遍历JSON数据的方法
Jul 08 Javascript
浅谈EasyUI中Treegrid节点的删除
Mar 01 Javascript
javaScript中Math()函数注意事项
Jun 18 Javascript
浏览器环境下JavaScript脚本加载与执行探析之动态脚本与Ajax脚本注入
Jan 19 Javascript
使用jQuery实现Web页面换肤功能的要点解析
May 12 Javascript
zTree实现节点修改的实时刷新功能
Mar 20 Javascript
js图片放大镜效果实现方法详解
Oct 28 Javascript
webpack教程之webpack.config.js配置文件
Jul 05 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
Sep 26 Javascript
layui实现显示数据表格、搜索和修改功能示例
Jun 03 Javascript
vue中el-input绑定键盘按键(按键修饰符)
Jul 22 Javascript
详解处理bootstrap4不支持远程静态框问题
Jul 20 #Javascript
基于Vue+element-ui 的Table二次封装的实现
Jul 20 #Javascript
webpack+vue-cil中proxyTable处理跨域的方法
Jul 20 #Javascript
详解vue-cli官方脚手架配置
Jul 20 #Javascript
Vue中的异步组件函数实现代码
Jul 20 #Javascript
vue 中的keep-alive实例代码
Jul 20 #Javascript
Angularjs实现页面模板清除的方法
Jul 20 #Javascript
You might like
php生成zip压缩文件的方法详解
2013/06/09 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
PHP如何实现跨域
2016/05/30 PHP
php求今天、昨天、明天时间戳的简单实现方法
2016/07/28 PHP
js加解密 脚本解密
2008/02/22 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
js实现刷新iframe的方法汇总
2015/04/27 Javascript
jquery限定文本框只能输入数字(整数和小数)
2016/01/08 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
JS中的BOM应用
2018/02/02 Javascript
node内置调试方法总结
2018/02/22 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
Python中dictionary items()系列函数的用法实例
2014/08/21 Python
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
对python中的pop函数和append函数详解
2018/05/04 Python
python 重定向获取真实url的方法
2018/05/11 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
出纳的岗位职责
2013/11/09 职场文书
地理教师岗位职责
2014/03/16 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
2014年预备党员学习新党章思想汇报
2014/09/15 职场文书
党员民主评议自我评价
2014/10/20 职场文书
幼儿教师个人总结
2015/02/05 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python