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 相关文章推荐
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
jQuery动态设置form表单的enctype值(实现代码)
Jul 04 Javascript
什么是cookie?js手动创建和存储cookie
May 27 Javascript
iframe调用父页面函数示例详解
Jul 17 Javascript
JS运动框架之分享侧边栏动画实例
Mar 03 Javascript
JS实现自动变换的菜单效果代码
Sep 09 Javascript
AngularJS实现全选反选功能
Dec 08 Javascript
JS常用字符串方法(推荐)
Jan 15 Javascript
JS选取DOM元素的简单方法
Jul 08 Javascript
layui监听select变化,以及设置radio选中的方法
Sep 24 Javascript
Vue的click事件防抖和节流处理详解
Nov 13 Javascript
js重写alert事件(避免alert弹框标题出现网址)
Dec 04 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
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
php array_reverse 以相反的顺序返回数组实例代码
2017/04/11 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
解决Extjs上传图片无法预览的解决方法
2012/03/22 Javascript
jQuery之尺寸调整组件的深入解析
2013/06/19 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
JS this作用域以及GET传输值过长的问题解决方法
2013/08/06 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
重新理解JavaScript的六种继承方式
2017/03/24 Javascript
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
微信公众平台 发送模板消息(Java接口开发)
2019/04/17 Javascript
ES6 Promise对象的含义和基本用法分析
2019/06/14 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
python的三目运算符和not in运算符使用示例
2014/03/03 Python
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
利用numpy和pandas处理csv文件中的时间方法
2018/04/19 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
python用opencv 图像傅里叶变换
2021/01/04 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
美国最大的袜子制造商和零售商:Renfro Socks
2017/09/03 全球购物
windeln官方海外旗舰店:德淘超人气母婴超市
2017/12/15 全球购物
总经理司机职责
2014/02/02 职场文书
《青蛙看海》教学反思
2014/04/23 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
带你彻底理解JavaScript中的原型对象
2021/04/14 Javascript
python使用pymysql模块操作MySQL
2021/06/16 Python