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取得url地址参数实例
Feb 22 Javascript
超炫的jquery仿flash导航栏特效
Nov 11 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
Sep 26 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
Dec 28 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
js判断是否是手机页面
Mar 17 Javascript
微信小程序实现列表下拉刷新上拉加载
Jul 29 Javascript
angularJS实现动态添加,删除div方法
Feb 27 Javascript
微信小程序实现分享到朋友圈功能
Jul 19 Javascript
layer.confirm取消按钮绑定事件的方法
Aug 17 Javascript
vue.js中使用echarts实现数据动态刷新功能
Apr 16 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基于CURL进行POST数据上传实例
2014/11/10 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
JavaScript html5 canvas绘制时钟效果(二)
2016/03/27 Javascript
分享两段简单的JS代码防止SQL注入
2016/04/12 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
Angular 4.x 路由快速入门学习
2017/05/03 Javascript
JS实现前端缓存的方法
2017/09/21 Javascript
Python版实现微信公众号扫码登陆
2020/05/28 Javascript
浅析JavaScript 函数防抖和节流
2020/07/13 Javascript
python 提取文件的小程序
2009/07/29 Python
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
Puppeteer使用示例详解
2019/06/20 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
html5时钟实现代码
2010/10/22 HTML / CSS
Spartoo瑞典:鞋子、包包和衣服
2018/09/15 全球购物
大学生职业生涯规划范文
2013/12/31 职场文书
个人委托书怎么写
2014/04/04 职场文书
高中生评语大全
2014/04/25 职场文书
工商企业管理应届生求职信
2014/05/04 职场文书
法人身份证明书
2014/10/08 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
大连星海广场导游词
2015/02/10 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
公司行政管理制度范本
2015/08/05 职场文书
Java的Object类的九种方法
2022/04/13 Java/Android
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle