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 相关文章推荐
CSS3中的元素过渡属性transition示例详解
Nov 30 HTML / CSS
需要知道的CSS3动画技术
Jan 01 HTML / CSS
CSS3文本换行word-wrap解决英文文本超过固定宽度不换行
Oct 10 HTML / CSS
CSS3 实现的火焰动画
Dec 07 HTML / CSS
HTML5 canvas基本绘图之绘制线段
Jun 27 HTML / CSS
HTML 5 input placeholder 属性如何完美兼任ie
May 12 HTML / CSS
html5实现多图片预览上传及点击可拖拽控件
Mar 15 HTML / CSS
html5 canvas的绘制文本自动换行的示例代码
Sep 17 HTML / CSS
html5唤醒APP小记
Mar 27 HTML / CSS
使用canvas压缩图片上传的方法示例
Feb 07 HTML / CSS
详解canvas.toDataURL()报错的解决方案全都在这了
Mar 31 HTML / CSS
html5 video全屏播放/自动播放的实现示例
Aug 06 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实现向javascript传递数组的方法
2015/07/27 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
javascript引导程序
2008/10/26 Javascript
JavaScript XML实现两级级联下拉列表
2008/11/10 Javascript
javascript 操作Word和Excel的实现代码
2009/10/26 Javascript
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
js实现的常用的左侧导航效果
2013/10/17 Javascript
JQuery中使用ajax传输超大数据的解决方法
2014/07/14 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
js创建jsonArray传输至后台及后台全面解析
2016/04/11 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
vue-router路由与页面间导航实例解析
2017/11/07 Javascript
layer弹出层 iframe层去掉滚动条的实例代码
2018/08/17 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
Python实现向QQ群成员自动发邮件的方法
2014/11/19 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
Django认证系统user对象实现过程解析
2020/03/02 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
公司联欢晚会主持词
2014/03/22 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
计划生育目标责任书
2015/05/09 职场文书
阿甘正传观后感
2015/06/01 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL