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 相关文章推荐
jQuery EasyUI API 中文文档 - ComboBox组合框
Oct 07 Javascript
利用javascript解决图片缩放及其优化的代码
May 23 Javascript
jquery中交替点击事件toggle方法的使用示例
Dec 08 Javascript
深入理解JavaScript中的传值与传引用
Dec 09 Javascript
简单理解vue中el、template、replace元素
Oct 27 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
Feb 27 Javascript
jQuery实现简单弹窗遮罩效果
Feb 27 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
Jul 13 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
Jan 18 Javascript
JS实现根据详细地址获取经纬度功能示例
Apr 16 Javascript
基于Vue中的父子传值问题解决
Jul 27 Javascript
简单聊聊TypeScript只读修饰符
Apr 06 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
四月新番又没了,《Re:从零开始的异世界生活》第二季延期至7月播出
2020/05/06 日漫
消息持续发送的完整例子
2006/10/09 PHP
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
PHP判断一个变量是否为整数、正整数的方法示例
2019/09/11 PHP
IE与FireFox的兼容性问题分析
2007/04/22 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
js中实现字符串和数组的相互转化详解
2016/01/24 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
vue过滤器实现日期格式化的案例分析
2020/07/02 Javascript
Vue3为什么这么快
2020/09/23 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
Python错误提示:[Errno 24] Too many open files的分析与解决
2017/02/16 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
Python爬虫教程知识点总结
2020/10/19 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
利用CSS3实现动态的二级三级菜单效果实例源码
2017/01/04 HTML / CSS
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
教师产假请假条范文
2014/04/10 职场文书
食品安全标语
2014/06/07 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
2014年班组工作总结
2014/11/20 职场文书
2014年路政工作总结
2014/12/10 职场文书
实习报告范文
2019/07/30 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
golang正则之命名分组方式
2021/04/25 Golang
python中mongodb包操作数据库
2022/04/19 Python