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 相关文章推荐
ExtJs GridPanel简单的增删改实现代码
Aug 26 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
Nov 30 Javascript
js获取滚动距离的方法
May 30 Javascript
浅谈js的异步执行
Oct 18 Javascript
深入理解jQuery.data() 的实现方式
Nov 30 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
Mar 02 Javascript
vue实现app页面切换动画效果实例
May 23 Javascript
ES6中let 和 const 的新特性
Sep 03 Javascript
你可能不知道的CORS跨域资源共享
Mar 13 Javascript
layer.js open 隐藏滚动条的例子
Sep 05 Javascript
如何利用node.js开发一个生成逐帧动画的小工具
Dec 01 Javascript
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
详解处理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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
PHP与MySQL开发中页面出现乱码的一种解决方法
2007/07/29 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
php防止恶意刷新与刷票的方法
2014/11/21 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
简单的JS多重继承示例
2008/03/13 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
javascript 全选与全取消功能的实现代码
2012/12/23 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
fmt:formatDate的输出格式详解
2014/01/09 Javascript
全面解析DOM操作和jQuery实现选项移动操作代码分享
2016/06/07 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
Javascript如何实现扩充基本类型
2020/08/26 Javascript
mapboxgl实现带箭头轨迹线的代码
2021/01/04 Javascript
Python实现windows下模拟按键和鼠标点击的方法
2015/03/13 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
python实现泊松图像融合
2018/07/26 Python
Python列表list排列组合操作示例
2018/12/18 Python
详解如何在Apache中运行Python WSGI应用
2019/01/02 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
大二法英学生职业生涯规划范文
2014/02/27 职场文书
高三家长寄语
2014/04/03 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技