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 浏览器验证代码(来自discuz)
Jul 17 Javascript
高亮显示web页表格行的javascript代码
Nov 19 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
jQuery实现文本展开收缩特效
Jun 03 Javascript
Grunt入门教程(自动任务运行器)
Aug 06 Javascript
一个简单不报错的summernote 图片上传案例
Jul 11 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
Aug 05 Javascript
微信小程序教程系列之新建页面(4)
Apr 17 Javascript
使用ionic播放轮询广告的实现方法(必看)
Apr 24 Javascript
基于AngularJS的简单使用详解
Sep 10 Javascript
vue实现nav导航栏的方法
Dec 13 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 各种排序算法实现代码
2009/08/20 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
使用PHP访问RabbitMQ消息队列的方法示例
2018/06/06 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
JQuery插件Style定制化方法的分析与比较
2012/05/03 Javascript
在JavaScript中重写jQuery对象的方法实例教程
2014/08/25 Javascript
浏览器检测JS代码(兼容目前各大主流浏览器)
2016/02/21 Javascript
jQuery实现的右下角广告窗体跟随效果示例
2016/09/16 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
微信小程序模板之分页滑动栏
2017/02/10 Javascript
Vue获取DOM元素样式和样式更改示例
2017/03/07 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
Node.js使用Express.Router的方法
2017/11/14 Javascript
基于layui框架响应式布局的一些使用详解
2019/09/16 Javascript
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
python实现ping的方法
2015/07/06 Python
Python 安装setuptools和pip工具操作方法(必看)
2017/05/22 Python
python处理按钮消息的实例详解
2017/07/11 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
Python使用itcaht库实现微信自动收发消息功能
2020/07/13 Python
比驿:全球酒店比价网
2018/06/20 全球购物
巴黎欧莱雅法国官网:L’Oreal Paris
2019/04/30 全球购物
Bose英国官方网站:美国知名音响品牌
2020/01/26 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
老兵退伍标语
2014/10/07 职场文书
2014年度个人工作总结
2014/11/07 职场文书
维稳工作承诺书
2015/01/20 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
导游词之任弼时故居
2020/01/07 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
Redis Stream类型的使用详解
2021/11/11 Redis