canvas 实现时钟效果
var clock = document.getElementById('clock');
        var cxt = clock.getContext('2d');
function drawClock(){
var now = new Date();
            var sec = now.getSeconds();
            var min = now.getMinutes();
            var hour = now.getHours();
            hour = hour + min/60;
            hour = hour>12? hour-12: hour;
// 清除画布
            cxt.clearRect(0, 0, 500, 500);
            // 表盘
            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 = '#000';
                cxt.translate(250, 250);
                cxt.rotate(i * 30 * Math.PI/180);
                cxt.beginPath(0, 0);
                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.strokeStyle = '#000';
                cxt.translate(250, 250);
                cxt.rotate(i * 6 * Math.PI/180);
                cxt.beginPath();
                cxt.moveTo(0, -180);
                cxt.lineTo(0, -190);
                cxt.closePath();
                cxt.stroke();
                cxt.restore();
            }
// 时针
            cxt.save();
            cxt.lineWidth = 7;
            cxt.strokeStyle = '#000';
            cxt.translate(250, 250);
            cxt.rotate(30 * hour * 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 = '#000';
            cxt.translate(250, 250);
            cxt.rotate(6 * min * Math.PI/180);
            cxt.beginPath();
            cxt.moveTo(0, -160);
            cxt.lineTo(0, 15);
            cxt.closePath();
            cxt.stroke();
            cxt.restore();
// 秒针
            cxt.save();
            cxt.lineWidth = 3;
            cxt.strokeStyle = 'red';
            cxt.translate(250, 250);
            cxt.rotate(6 * sec * Math.PI/180);
            cxt.beginPath();
            cxt.moveTo(0, -170);
            cxt.lineTo(0, 20);
            cxt.closePath();
            cxt.stroke();
cxt.beginPath();
            cxt.arc(0, 0, 6, 0, 360, false);
            cxt.closePath();
            cxt.fillStyle = 'gray';
            cxt.fill();
            cxt.stroke();
cxt.beginPath();
            cxt.arc(0, -150, 5, 0, 360, false);
            cxt.closePath();
            cxt.fillStyle = 'gray';
            cxt.fill();
            cxt.stroke();
cxt.restore();
        }
        drawClock();
        setInterval(drawClock, 1000);
canvas 实现时钟效果的更多相关文章
- canvas实现的时钟效果
		最近在网上看到了一个css3实现的可爱时钟,觉得很nice,然后就想着用canvas试试实现这个时钟效果. 首先,要实现时钟需要先计算时钟上的数字应该占整个圆的大小. 因为一个圆是360度,所以数字之 ... 
- 基于canvas的原生JS时钟效果
		概述 运用html5新增画布canvas技术,绘制时钟效果,无需引用任何插件,纯js. 详细 代码下载:http://www.demodashi.com/demo/11935.html 给大家介绍一个 ... 
- canvas时钟效果
		话不多说,直接上代码 <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/x ... 
- vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
		前言: 此事例是在vue组件中,使用canvas实现倒计时动画的效果.其实,实现效果的逻辑跟vue没有关系,只要读懂canvas如何实现效果的这部分逻辑就可以了 canvas动画的原理:利用定时器,给 ... 
- 使用canvas绘制时钟
		使用canvas绘制时钟 什么使canvas呢?HTML5 <canvas> 元素用于图形的绘制,通过脚本 (通常是JavaScript)来完成.<canvas> 标签只是图 ... 
- transform实现的时钟效果
		又来一个时钟效果了,这个的实现不需要canvas,都是div.ul.li画出的,好玩有真实. 哈哈~ 需要的js才能实现到走动这个效果,但js的内容不多,也不难. 主要是一个css里transform ... 
- canvas粒子时钟
		前面的话 本文将使用canvas实现粒子时钟效果 效果展示 点阵数字 digit.js是一个三维数组,包含的是0到9以及冒号(digit[10])的二维点阵.每个数字的点阵表示是7*10大小的二维数组 ... 
- HTML5 Canvas爱心时钟代码
		这是一款数字时钟动画,数字又多个小爱心组成,又何问起整理,随着时间推进,每一秒钟新数字替换旧数字,旧数字离去使用天女散花动画,花是五颜六色的. 查看效果:http://hovertree.com/te ... 
- 用canvas绘制时钟
		用canvas做时钟其实很简单,下面是我做出的效果: 是不是还挺漂亮的? 下面上代码: html <div class="whole"> <canvas id=& ... 
随机推荐
- :after伪类+content经典应用举例
			:after伪类+content 清除浮动的影响 .box{padding:10px; background:gray;} .l{float:left;} <div class="bo ... 
- poj2635(千进制取模+同余模定理)
			题目链接:https://www.cnblogs.com/kuangbin/archive/2012/04/01/2429463.html 题意:给出大数s (s<=10100) ,L (< ... 
- Maven 标签
			scope 1.compile:默认值 他表示被依赖项目需要参与当前项目的编译,还有后续的测试,运行周期也参与其中,是一个比较强的依赖.打包的时候通常需要包含进去 2.test:依赖项目仅仅参与测试相 ... 
- Android 性能测试之内存  ---  追加腾讯性能案例,安卓抓取性能扫盲帖
			内存测试: 思路 目前做的是酒店APP,另下载安装几个个第三方酒店的APP以方便对比(相当于可以做竞品测试) 数据的获取来源是ADB底层命令,而且最好是不需要root权限,因为很多手机root很麻烦或 ... 
- RxJS之转化操作符 ( Angular环境 )
			一 map操作符 类似于大家所熟知的 Array.prototype.map 方法,此操作符将投射函数应用于每个值 并且在输出 Observable 中发出投射后的结果. import { Compo ... 
- PHP调用外部程序的方法
			很多情况下需要php调用其他程序如shell命令.shell脚本.可执行程序等等,此时需要使用到诸如exec/system/popen/proc_open等函数,每种函数有各自适合使用的场景以及需要注 ... 
- ReactPHP── PHP版的Node.js(转)
			原文地址:http://www.csdn.net/article/2015-10-12/2825887 摘要:ReactPHP作为Node.js的PHP版本.在实现思路,使用方法,应用场景上的确有很多 ... 
- MultiImageSelector 仿微信选择多张图片回调
			项目可以去github下载 : https://github.com/lovetuzitong/MultiImageSelector 第0步 把模块 multi-image-selector 作为你的 ... 
- mysql 事务中如果有sql语句出错,会导致自动回滚吗?
			事务,我们都知道具有原子性,操作要么全部成功,要么全部失败.但是有可能会造成误解. 我们先准备一张表,来进行测试 CREATE TABLE `name` ( `id` int(11) unsigned ... 
- JFinal Web开发学习(四)数据库连接与自动生成model
			1.新建数据库jfinal_test,user表 /* Navicat MySQL Data Transfer Source Server : . Source Server Version : 50 ... 
