<canvas id="clock" width="500" height="500"></canvas>
function drawClock(){
var canvas = document.querySelector("#clock");
var ctx = canvas.getContext("2d");
drawDial(ctx); //绘制变盘
// 绘制时针、分针、秒针
var pi = Math.PI;
var time = new Date();
var s = time.getSeconds();
var m = time.getMinutes();
var h = time.getHours();
var angleSecound = s*pi/30;
var angleMinute = m*pi/30 + angleSecound/60;
var angleHour = h*pi/6 + angleMinute/12; drawHand(angleSecound,190,2,"blue",ctx);
drawHand(angleMinute,150,4,"green",ctx);
drawHand(angleHour,80,6,"red",ctx); requestAnimationFrame(drawClock); }
function drawHand(angle,length,width,color,ctx){
var pi = Math.PI;
ctx.save();
ctx.translate(250,250);
ctx.rotate(-pi/2 + angle);
ctx.beginPath();
ctx.lineCap = "round";
ctx.moveTo(-4,0);
ctx.lineTo(length,0);
ctx.lineWidth = width;
ctx.strokeStyle = color;
ctx.stroke();
ctx.closePath();
ctx.restore();
}
function drawDial(ctx){
var pi = Math.PI;
ctx.clearRect(0,0,500,500);
ctx.save(); //绘制外周圆弧
ctx.translate(250,250);
ctx.strokeStyle="gray";
ctx.beginPath();
ctx.arc(0,0,200,0,2*pi);
ctx.stroke();
ctx.closePath(); //绘制刻度
for(var i=0;i<60;i++){
ctx.save();
ctx.rotate(-pi/2 + i*pi/30);
ctx.beginPath();
ctx.moveTo(180,0);
ctx.lineTo(195,0);
ctx.strokeStyle = i%5 ? "blue":"red";
ctx.lineWidth = i%5 ? "2":"4";
ctx.stroke();
ctx.closePath();
ctx.restore();
}
ctx.restore();
}
drawClock();

截图:

canvas 动画 时钟clock的更多相关文章

  1. [JS,Canvas]日历时钟

    [JS,Canvas]日历时钟 Html: <!doctype html> <html> <head> <meta charset="UTF-8&q ...

  2. 使用canvas绘制时钟

    使用canvas绘制时钟  什么使canvas呢?HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.<canvas> 标签只是图 ...

  3. [ZZ+CH] Html5 canvas+js 时钟

    总之新Blog入驻以后,又开始老习惯,到处折腾自定义的空间,放些东西. 想起以前大一的时候做过一个Javascript的时间显示器,现在想做一个时钟,当然现在老奸巨猾,会先去看一看有前辈写过没. 前辈 ...

  4. html5学习(一)--canvas画时钟

    利用空余时间学习一下html5. <!doctype html> <html> <head></head> <body> <canva ...

  5. canvas粒子时钟

    前面的话 本文将使用canvas实现粒子时钟效果 效果展示 点阵数字 digit.js是一个三维数组,包含的是0到9以及冒号(digit[10])的二维点阵.每个数字的点阵表示是7*10大小的二维数组 ...

  6. canvas画时钟,重拾乐趣!

    canvas时钟--效果图 一.先来简单介绍画时钟需要的canvas知识 1.在HTML页面中添加canvas元素,必须定义canvas元素的id属性值以便接下来的调用. HTML代码: <ca ...

  7. HTML5 Canvas爱心时钟代码

    这是一款数字时钟动画,数字又多个小爱心组成,又何问起整理,随着时间推进,每一秒钟新数字替换旧数字,旧数字离去使用天女散花动画,花是五颜六色的. 查看效果:http://hovertree.com/te ...

  8. 16个富有创意的HTML5 Canvas动画特效集合

    HTML5技术正在不断的发展和更新,越来越多的开发者也正在加入HTML5阵营,甚至在移动开发上HTML5的地位也是越来越重要了.HTML5中的大部分动画都是通过Canvas实现,因为Canvas就像一 ...

  9. canvas实现时钟

    最近在看新浪体育网球频道(http://sports.sina.com.cn/tennis/)的时候,看到了下面的劳力士广告的时钟是用canvas做的,于是也实现了一个简单的canvas时钟.直接上代 ...

随机推荐

  1. VMware里的linux系统里的命令行里会有bee的声音,要如何关掉

    取消bell报警声的方法:登陆linux系统vi /etc/inputrc找到set bell-style none 将前面的#去掉,之后重启系统即可解决声音问题 若不见效可以通过下面的方式解决下be ...

  2. SecureCRT连接linux,Hive中无法使用删除键

  3. 【HQL】窗口函数

    LAG LAG(col,n,DEFAULT) :与lead相反,用于统计窗口内往上第n行值.第一个参数为列名,第二个参数为往上第n行(可选,默认为1),第三个参数为默认值(当往上第n行为NULL时候, ...

  4. 学习笔记:python3,代码。小例子习作(2017)

    http://www.cnblogs.com/qq21270/p/7634025.html 学习笔记:python3,一些基本语句(一些基础语法的代码,被挪到这里了) 日期和时间操作 http://b ...

  5. leetcode1006

    func clumsy(N int) int { var ary []int ; n-- { ary = append(ary, n) } re := N % //4个数字一组 firstgroup ...

  6. 浅析STM32之usbh_def.H

    [温故而知新]类似文章浅析USB HID ReportDesc (HID报告描述符) 现在将en.stm32cubef1\STM32Cube_FW_F1_V1.4.0\Middlewares\ST\S ...

  7. centos 7 端口

    查看端口是否占用 netstat -tlnp|grep 8080 查看已经开放的端口 firewall-cmd --zone=public --list-ports 增加开放端口 firewall-c ...

  8. 详述 IntelliJ IDEA 插件的安装及使用方法

    首先,进入插件安装界面: Mac:IntelliJ IDEA -> Preferences -> Plugins; Windows:File -> Settings -> Pl ...

  9. vue 的父组件和子组件互相获取数据和方法

    父组件主动获取子组件的数据和方法 一.ref(但不能实时更新获取) 1.调用子组件的时候 定义一个ref <child ref="headerChild"></c ...

  10. OneinStack PHP多版本共存教程

    1. 安装OneinStack 选择lnmp模式,默认安装php5.4,安装步骤参考:http://oneinstack.com/install/ 选项如下: Install Nginx Do not ...