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 静态对象和构造函数的使用和公私问题
Mar 02 Javascript
JS实现下拉框的动态添加(附效果)
Apr 03 Javascript
4种JavaScript实现简单tab选项卡切换的方法
Jan 06 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
Dec 22 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
Mar 13 Javascript
js移动端图片压缩上传功能
Aug 18 Javascript
详解如何在项目中使用jest测试react native组件
Feb 09 Javascript
浅谈node.js 命令行工具(cli)
May 10 Javascript
vuejs实现标签选项卡动态更改css样式的方法
May 31 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
解决vue单页路由跳转后scrollTop的问题
Sep 03 Javascript
详解IOS微信上Vue单页面应用JSSDK签名失败解决方案
Nov 14 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三种方式实现链式操作详解
2017/01/21 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
js判断上传文件的类型和大小示例代码
2013/10/18 Javascript
javascript页面动态显示时间变化示例代码
2013/12/18 Javascript
JavaScript实现找质数代码分享
2015/03/24 Javascript
JavaScript使用Math.Min返回两个数中较小数的方法
2015/04/06 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
javascript实现支持移动设备画廊
2015/08/24 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
jQuery实现无限往下滚动效果代码
2016/04/16 Javascript
详细探究ES6之Proxy代理
2016/07/22 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
vue2中,根据list的id进入对应的详情页并修改title方法
2018/08/24 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
nodejs基础之buffer缓冲区用法分析
2018/12/26 NodeJs
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
Angular8引入百度Echarts进行图表分析的实现代码
2019/11/27 Javascript
JS实现简易日历效果
2021/01/25 Javascript
python常用web框架简单性能测试结果分享(包含django、flask、bottle、tornado)
2014/08/25 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
Python 统计字数的思路详解
2018/05/08 Python
[原创]Python入门教程4. 元组基本操作
2018/10/31 Python
python 动态生成变量名以及动态获取变量的变量名方法
2019/01/20 Python
纯CSS3发光分享按钮的实现教程
2014/09/06 HTML / CSS
俄罗斯的精英皮具:Wittchen
2018/01/29 全球购物
建筑专业自荐信范文
2014/01/05 职场文书
策划创业计划书
2014/02/06 职场文书
毕业证丢失证明范本
2014/09/20 职场文书
党的群众路线教育实践活动党员个人整改措施
2014/10/27 职场文书
个人学习总结范文
2015/02/15 职场文书
MySQL Shell的介绍以及安装
2021/04/24 MySQL
python自动化测试之Selenium详解
2022/03/13 Python