会走动的图形html5时钟示例


Posted in HTML / CSS onApril 27, 2014

使用HTML5制作时钟

会走动的图形html5时钟示例

复制代码
代码如下:

<!DOCTYPE html>
<html>
<head>
<title>html5时钟</title>
</head>
<body>
<canvas id = "canvas"></canvas></p> <p> <script>
var Clock = function (canvas, options) {
this.canvas = canvas;
this.ctx = this.canvas.getContext("2d");
this.options = options;
};</p> <p> Clock.prototype = {
constructor: Clock,
drawCircle: function () {
var ctx = this.ctx;
ctx.strokeStyle = "black";
ctx.arc(this.canvas.width / 2, this.canvas.height / 2, 50, 0, 2 * Math.PI, false);
ctx.stroke();
},
drawNum: function () {
var ctx = this.ctx;
var angle = Math.PI * 2 / 12;
for (var i = 1; i <= 12; i += 1) {
ctx.font = "20px Georgia";
ctx.textAlign = "center";
ctx.textBaseline = 'middle';
ctx.fillText(String(i), this.canvas.width / 2 + Math.cos(3 *Math.PI / 2 + angle * i) * 40, this.canvas.height / 2 + Math.sin(3 * Math.PI / 2 + angle * i) * 40);
}
},
drawPointer: function () {
var ctx = this.ctx;
var that = this;
var date, hour, minute, second;
date = new Date();
hour = date.getHours();
if (hour > 12) {
hour = hour % 12;
}
minute = date.getMinutes();
second = date.getSeconds();</p> <p> var b = minute * Math.PI / 30;
var c = second * Math.PI / 30;
var a = hour * Math.PI / 6 + Math.PI / 6 * minute / 60;
var minuteAngle = Math.PI * 2 / 3600;
var secondAngle = Math.PI * 2 / 60;
var hourAngle = Math.PI * 2 / 12 / 3600;</p> <p> ctx.beginPath();
ctx.save();
ctx.translate(that.canvas.width / 2, that.canvas.height / 2);
ctx.arc(0, 0, 3, 0, 2 * Math.PI, false);
ctx.fill();
ctx.closePath();
ctx.beginPath();
a += hourAngle;
ctx.rotate(a);
ctx.fillRect(-2, -22, 4, 30);
ctx.closePath();
ctx.beginPath();
b += minuteAngle;
ctx.rotate(b - a);
ctx.fillRect(-1.5, -26, 3, 35);
ctx.closePath();
ctx.beginPath();
c += secondAngle;
ctx.rotate(c - b);
ctx.fillRect(-1, -30, 2, 40);
ctx.closePath();
ctx.restore();
},
rePaint: function () {
this.drawPointer();
this.drawCircle();
this.drawNum();
},
tik: function () {
var that = this;
var ctx = this.ctx;
this.rePaint();
window.timer = setInterval(function () {
ctx.clearRect(0, 0, that.canvas.width, that.canvas.height);
that.rePaint();
}, 1000);
}
};</p> <p> var options;
var clock = new Clock(document.getElementById("canvas"), options);
clock.tik();
</script>
</body>
</html>

保存后使用浏览器运行,可以看到走动的圆形时钟,大家试试看吧

HTML / CSS 相关文章推荐
25个CSS3动画按钮和菜单教程分享
Oct 03 HTML / CSS
基于CSS3实现的漂亮Menu菜单效果代码
Sep 10 HTML / CSS
html5组织文档结构_动力节点Java学院整理
Jul 11 HTML / CSS
前端canvas水印快速制作(附完整代码)
Sep 19 HTML / CSS
html5时钟实现代码
Oct 22 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
Jun 04 HTML / CSS
解析HTML5中的新功能本地存储localStorage
Mar 01 HTML / CSS
HTML5头部标签的一些常用信息小结
Oct 23 HTML / CSS
HTML5本地存储之IndexedDB
Jun 16 HTML / CSS
HTML5新特性之type=file文件上传功能
Feb 02 HTML / CSS
canvas生成带二维码海报的踩坑记录
Sep 11 HTML / CSS
基于HTML5+tracking.js实现刷脸支付功能
Apr 16 HTML / CSS
html5定位并在百度地图上显示的示例
Apr 27 #HTML / CSS
HTML5中的autofocus(自动聚焦)属性介绍
Apr 23 #HTML / CSS
HTML5的download属性详细介绍和使用实例
Apr 23 #HTML / CSS
HTML5里的placeholder属性使用实例和美化显示效果的方法
Apr 23 #HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
Apr 23 #HTML / CSS
HTML5中的Scoped属性使用实例
Apr 23 #HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
Apr 23 #HTML / CSS
You might like
PHP计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
仿AS3实现PHP 事件机制实现代码
2011/01/27 PHP
php 删除目录下N分钟前创建的所有文件的实现代码
2013/08/10 PHP
PHP mysql与mysqli事务使用说明 分享
2013/08/17 PHP
php实现向javascript传递数组的方法
2015/07/27 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
Node.js事件驱动
2015/06/18 Javascript
JavaScript Length 属性的总结
2015/11/02 Javascript
JavaScript简单实现鼠标移动切换图片的方法
2016/02/23 Javascript
JavaScript如何实现组合列表框中元素移动效果
2016/03/01 Javascript
jQuery弹出遮罩层效果完整示例
2016/09/13 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
flask中使用SQLAlchemy进行辅助开发的代码
2013/02/10 Python
python之pandas用法大全
2018/03/13 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
Python 保存矩阵为Excel的实现方法
2019/01/28 Python
Python中常用的内置方法
2019/01/28 Python
PyQt5实现画布小程序
2020/05/30 Python
Python中全局变量和局部变量的理解与区别
2021/02/07 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
利用HTML5绘制点线面组成的3D图形的示例
2015/05/12 HTML / CSS
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
免税水晶:Duty Free Crystal
2019/05/13 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
幼师自荐信
2013/10/26 职场文书
自荐书4要点
2014/01/25 职场文书
校园文化建设方案
2014/02/03 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
导游词之吉林花园山
2019/10/17 职场文书