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 相关文章推荐
JS 面向对象的5钟写法
Jul 31 Javascript
javascript如何动态加载表格与动态添加表格行
Nov 27 Javascript
Jquery响应回车键直接提交表单操作代码
Jul 25 Javascript
JS简单模拟触发按钮点击功能的方法
Nov 30 Javascript
Bootstrap框架下下拉框select搜索功能
Mar 26 Javascript
Bootstrapvalidator校验、校验清除重置的实现代码(推荐)
Sep 28 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
angular4中关于表单的校验示例
Oct 16 Javascript
原生JS实现的双色球功能示例
Feb 02 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
Mar 07 Javascript
微信小程序用户盒子、宫格列表的实现
Jul 01 Javascript
前端性能优化建议
Sep 17 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中的CMS的涵义
2007/03/11 PHP
为你总结一些php信息函数
2015/10/21 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
docker-compose部署php项目实例详解
2019/07/30 PHP
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
Javascript中的delete操作符详细介绍
2014/06/06 Javascript
javascript自定义右键弹出菜单实现方法
2015/05/25 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
ionic环境配置及问题详解
2017/06/27 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
React native ListView 增加顶部下拉刷新和底下点击刷新示例
2018/04/27 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python正则表达式经典入门教程
2017/05/22 Python
Django 实现下载文件功能的示例
2018/03/06 Python
Python读取数据集并消除数据中的空行方法
2018/07/12 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
Python实现将HTML转成PDF的方法分析
2019/05/04 Python
python实现各种插值法(数值分析)
2019/07/30 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
常用的10个Python实用小技巧
2020/08/10 Python
Python3使用 GitLab API 进行批量合并分支
2020/10/15 Python
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
C#中的验证控件有几种
2014/03/08 面试题
母亲节演讲稿
2014/05/27 职场文书
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
财务出纳岗位职责
2015/03/31 职场文书
总经理年会致辞
2015/07/29 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS