会走动的图形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 相关文章推荐
css3实现的下拉菜单效果示例
Jan 22 HTML / CSS
CSS3实现超酷的黑猫警长首页
Apr 26 HTML / CSS
CSS3制作hover下划线动画
Mar 27 HTML / CSS
前端canvas水印快速制作(附完整代码)
Sep 19 HTML / CSS
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
Mar 15 HTML / CSS
HTML5新增属性data-*和js/jquery之间的交互及注意事项
Aug 08 HTML / CSS
html5清空画布方法(三种)
Oct 16 HTML / CSS
canvas版人体时钟的实现示例
Jan 29 HTML / CSS
HTML5拖拽文件上传的示例代码
Mar 04 HTML / CSS
使用canvas实现雪花飘动效果的示例代码
Mar 30 HTML / CSS
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
Mar 31 HTML / CSS
box-shadow单边阴影的实现
May 21 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
php笔记之:文章中图片处理的使用
2013/04/26 PHP
php表单处理操作
2017/11/16 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
JavaScript字符串删除重复字符的方法
2015/12/25 Javascript
jquery+json实现分页效果
2016/03/07 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
validform表单验证的实现方法
2019/03/08 Javascript
vue项目使用$router.go(-1)返回时刷新原来的界面操作
2020/07/26 Javascript
分享几道你可能遇到的python面试题
2017/07/24 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
Can a struct inherit from another class? (结构体能继承类吗)
2014/07/22 面试题
GWebs公司笔试题
2012/05/04 面试题
优秀团员个人的自我评价
2013/10/02 职场文书
水务局局长岗位职责
2013/11/28 职场文书
小学中秋节活动方案
2014/02/06 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技