html5绘制时钟动画


Posted in HTML / CSS onDecember 15, 2014

<canvas id="clock" width="500" height="500" style="background-color: yellow"></canvas>

复制代码
代码如下:

var clock=document.getElementById("clock");
var cxt=clock.getContext("2d");
function drawNow(){
var now=new Date();
var hour=now.getHours();
var min=now.getMinutes();
var sec=now.getSeconds();
hour=hour>12?hour-12:hour;
hour=hour+min/60;
//表盘(蓝色)
cxt.lineWidth=10;
cxt.strokeStyle="blue"
cxt.beginPath();
cxt.arc(250,250,200,0,360,false);
cxt.closePath();
cxt.stroke();
//刻度
//时刻度
for(var i=0;i<12;i++){
cxt.save();
cxt.lineWidth=7;
cxt.strokeStyle="black";
cxt.translate(250,250);
cxt.rotate(i*30*Math.PI/180);//旋转角度 角度*Math.PI/180=弧度
cxt.beginPath();
cxt.moveTo(0,-170);
cxt.lineTo(0,-190);
cxt.closePath();
cxt.stroke();
cxt.restore();
}
//分刻度
for(var i=0;i<60;i++){
cxt.save();
//设置分刻度的粗细
cxt.lineWidth=5;
//重置画布原点
cxt.translate(250,250);
//设置旋转角度
cxt.rotate(i*6*Math.PI/180);
//画分针刻度
cxt.strokeStyle="black";
cxt.beginPath();
cxt.moveTo(0,-180);
cxt.lineTo(0,-190);
cxt.closePath();
cxt.stroke();
cxt.restore();
}
//时针
cxt.save();
// 设置时针风格
cxt.lineWidth=7;
cxt.strokeStyle="black";
cxt.translate(250,250);
cxt.rotate(hour*30*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-140);
cxt.lineTo(0,10);
cxt.closePath();
cxt.stroke();
cxt.restore();
//分针
cxt.save();
cxt.lineWidth=5;
cxt.strokeStyle="black";
//设置异次元空间分针画布的中心
cxt.translate(250,250);
cxt.rotate(min*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-160);
cxt.lineTo(0,15);
cxt.closePath();
cxt.stroke()
cxt.restore();
//秒针
cxt.save();
//设置秒针的风格
//颜色:红色
cxt.strokeStyle="red";
cxt.lineWidth=3;
//重置原点
cxt.translate(250,250);
//设置角度
//cxt.rotate(330*Math.PI/180);
cxt.rotate(sec*6*Math.PI/180);
cxt.beginPath();
cxt.moveTo(0,-170);
cxt.lineTo(0,20);
cxt.closePath();
cxt.stroke();
//画出时针,分针,秒针的交叉点
cxt.beginPath();
cxt.arc(0,0,5,0,360,false);
cxt.closePath();
//设置填充
cxt.fillStyle="gray";
cxt.fill();
//cxt.strokeStyle="red";
cxt.stroke();
//画出秒针的小圆点
cxt.beginPath();
cxt.arc(0,-140,5,0,360,false);
cxt.closePath();
//设置填充
cxt.fillStyle="gray";
cxt.fill();
//cxt.strokeStyle="red";
cxt.stroke();</p> <p> cxt.restore();</p> <p>}
function drawClock(){
cxt.clearRect(0,0,500,500);
drawNow();
}
drawNow();
setInterval(drawClock,1000);

html5绘制时钟动画

HTML / CSS 相关文章推荐
使用JS+CSS3技术:让你的名字动起来
Apr 27 HTML / CSS
纯CSS3发光分享按钮的实现教程
Sep 06 HTML / CSS
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
Oct 10 HTML / CSS
CSS3 3D旋转rotate效果实例介绍
May 03 HTML / CSS
用CSS3的box-reflect来制作倒影效果
Nov 15 HTML / CSS
纯CSS3实现的井字棋游戏
Nov 25 HTML / CSS
X/HTML5 和 XHTML2
Oct 17 HTML / CSS
HTML5之SVG 2D入门5—颜色的表示及定义方式
Jan 30 HTML / CSS
Web时代变迁及html5与html4的区别
Jan 06 HTML / CSS
HTML5 source标签:媒介元素定义媒介资源
Jan 29 HTML / CSS
Canvas图片分割效果的实现
Jul 29 HTML / CSS
Amaze UI 文件选择域的示例代码
Aug 26 HTML / CSS
html5的canvas方法使用指南
Dec 15 #HTML / CSS
html5各种页面切换效果和模态对话框用法总结
Dec 15 #HTML / CSS
2014年圣诞节倒计时网页的制作过程
Dec 05 #HTML / CSS
一款利用html5和css3动画排列人物头像的实例演示
Dec 05 #HTML / CSS
HTML5中drawImage用法分析
Dec 01 #HTML / CSS
html5+css3气泡组件的实现
Nov 21 #HTML / CSS
5 个强大的HTML5 API 函数推荐
Nov 19 #HTML / CSS
You might like
PHP利用COM对象访问SQLServer、Access
2006/10/09 PHP
curl和libcurl的区别简介
2015/07/01 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
javascript 写类方式之九
2009/07/05 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
2016/01/04 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
检查表单元素的值是否为空的实例代码
2016/06/16 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
原生js仿淘宝网商品放大镜效果
2017/02/28 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
2018/08/24 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
2019/09/06 Javascript
vue-cli4项目开启eslint保存时自动格式问题
2020/07/13 Javascript
跨平台python异步回调机制实现和使用方法
2013/11/26 Python
Python中的MongoDB基本操作:连接、查询实例
2015/02/13 Python
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
使用C++扩展Python的功能详解
2018/01/12 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
python实现接口并发测试脚本
2019/06/25 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
python实现文法左递归的消除方法
2020/05/22 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
物流司机岗位职责
2013/12/28 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
使用python创建股票的时间序列可视化分析
2022/03/03 Python
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android