HTML5 Canvas时间效果
Canvas 时间效果:
function clockTest() {
var canvas = document.getElementById('canvas');
if (!(canvas && canvas.getContext)) {
return;
}
var ct = canvas.getContext('2d');
var w = canvas.width = 500;
var h = canvas.height = 300;
var r1 = 95;
var c3 = ct.createLinearGradient(0, 0, 0, h); c3.addColorStop(0, '#FFF');
c3.addColorStop(0.2, '#dad9e0');
c3.addColorStop(0.4, '#adb0b6');
c3.addColorStop(0.6, '#8f8f99');
c3.addColorStop(0.8, '#86878b');
c3.addColorStop(1, '#88898e'); var c4 = ct.createRadialGradient(w / 2, h / 2, w, w, w, w);
c4.addColorStop(0, 'rgba(0,0,0,1)');
c4.addColorStop(0.2, 'rgba(0,0,0,0.8)');
c4.addColorStop(0.3, 'rgba(0,0,0,0)');
c4.addColorStop(0, 'rgba(0,0,0,0)'); function clock() {
var d = new Date();
var dH = d.getHours();
var dM = d.getMinutes();
var dS = d.getSeconds();
//return;
ct.clearRect(0, 0, w, h);
ct.save();
ct.beginPath();
ct.strokeStyle = 'rgba(0,0,0,0.1)';
ct.fillStyle = c3;
ct.arc(w / 2, h / 2, 135, 0, Math.PI * 2, true);
ct.closePath();
ct.fill();
ct.stroke();
ct.restore(); ct.save();
ct.beginPath();
ct.strokeStyle = 'rgba(0,0,0,0.1)';
ct.fillStyle = '#E2E9F1';
ct.arc(w / 2, h / 2, 120, 0, Math.PI * 2, true);
ct.closePath();
ct.fill();
ct.stroke();
ct.restore(); for (var i = 0; i < 60; i++) {
ct.save();
ct.lineCap = 'square';
ct.beginPath();
if (i % 5 === 0) {
ct.lineWidth = 5;
ct.strokeStyle = '#333';
} else {
ct.lineWidth = 2;
ct.strokeStyle = '#333';
}
ct.translate(w / 2, h / 2);
ct.rotate(i * 6 * Math.PI / 180);
ct.moveTo(0, -120);
if (i % 5 === 0) {
ct.lineTo(0, -105);
} else {
ct.lineTo(0, -110);
}
ct.closePath();
ct.stroke();
ct.restore();
} ct.save();
ct.translate(w / 2, h / 2);
ct.fillColor = '#369';
ct.textAlign = 'center';
ct.textBaseline = 'middle';
ct.font = '25px times new roman';
ct.fillText(12, 0, -r1);
ct.fillText(3, r1, -0);
ct.fillText(6, 0, r1);
ct.fillText(9, -r1, -0);
ct.fillStyle = '#333';
ct.font = '16px verdara';
ct.fillText('KINGWELL', 0, 50);
ct.restore(); ct.save();
ct.beginPath();
ct.translate(w / 2, h / 2);
ct.rotate((dH + dM / 60) * 30 * Math.PI / 180);
ct.lineWidth = 10;
ct.strokeStyle = '#222';
ct.moveTo(0, 15);
ct.lineTo(0, -70);
ct.closePath();
ct.stroke();
ct.restore(); ct.save();
ct.beginPath();
ct.translate(w / 2, h / 2);
ct.rotate((dM + dS / 60) * 6 * Math.PI / 180);
ct.lineWidth = 6;
ct.strokeStyle = '#333';
ct.moveTo(0, 20);
ct.lineTo(0, -90);
ct.closePath();
ct.stroke();
ct.restore(); ct.save();
ct.beginPath();
ct.translate(w / 2, h / 2);
ct.rotate(dS * 6 * Math.PI / 180);
ct.lineWidth = 2;
ct.strokeStyle = '#C00';
ct.moveTo(0, 25);
ct.lineTo(0, -100);
ct.closePath();
ct.stroke();
ct.restore(); ct.save();
ct.beginPath();
ct.translate(w / 2, h / 2);
ct.arc(0, 0, 6, 0, Math.PI * 2, true);
ct.fillStyle = '#C00';
ct.closePath();
ct.fill();
ct.restore();
setTimeout(clock, 1000);
}
clock();
}
clockTest();
HTML5 Canvas时间效果的更多相关文章
- HTML5 Canvas动画效果演示
HTML5 Canvas动画效果演示 主要思想: 首先要准备一张有连续帧的图片,然后利用HTML5 Canvas的draw方法在不同的时间 间隔绘制不同的帧,这样看起来就像动画在播放. 关键技术点: ...
- HTML5 Canvas动画效果实现原理
在线演示 使用HTML5画布可以帮助我们高速实现简单的动画效果.基本原理例如以下: 每隔一定时间绘制图形而且清除图形,用来模拟出一个动画过程,能够使用context.clearRect(0, 0, x ...
- HTML5 Canvas动画效果演示 - 流浪的鱼 - 博客频道 - CSDN.NET
HTML5 Canvas动画效果演示 - 流浪的鱼 - 博客频道 - CSDN.NET HTML5 Canvas动画效果演示
- 7个惊艳的HTML5 Canvas动画效果及源码
HTML5非常强大,尤其是现在大部分浏览器都支持HTML5和CSS3,用HTML5制作的动画也多了起来.另外,Canvas上绘制图形非常简单,本文就分享了一些强大的HTML5 Cnavas动画,一起来 ...
- 基于HTML5 Canvas粒子效果文字动画特效
之前我们分享过很多超酷的文字特效,其中也有利用HTML5和CSS3的.今天我们要来分享一款基于HTML5 Canvas的文字特效,输入框中输入想要展示的文字,回车后即可在canvas上绘制出粒子效果的 ...
- HTML5 canvas流体力学效果
某人用Java搞了一个流体力学的演示:http://grantkot.com/MPM/Liquid.html. 下面是 HTML 5版的流体力学演示(推荐使用Chrome浏览器浏览): 效果演示 &l ...
- HTML5 Canvas 超炫酷烟花绽放动画教程
这是一个很酷的HTML5 Canvas动画,它将模拟的是我们现实生活中烟花绽放的动画特效,效果非常逼真,但是毕竟是电脑模拟,带女朋友看就算了,效果还是差了点,呵呵.这个HTML5 Canvas动画有一 ...
- html5 canvas首屏自适应背景动画循环效果代码
模板描述:html5 canvas首屏自适应背景动画循环效果代码 由于动态图太大,怕以后服务器受不了,所以现在都改为静态图了,大家点击演示地址一样的,希望大家喜欢,你们的支持就是小海的动力!! 欢迎大 ...
- HTML5 Canvas 实现的9个 Loading 效果
Sonic.js 是一个很小的 JavaScript 类,用于创建基于 HTML5 画布的加载图像.更强大的是 Sonic.js 还提供了基于现成的例子的创建工具,可以帮助你实现更多自定义的(Load ...
随机推荐
- SQL 单表分页存储过程和单表多字段排序和任意字段分页存储过程
第一种:单表多字段排序分页存储过程 --支持单表多字段查询,多字段排序 create PROCEDURE [dbo].[UP_GetByPageFiledOrder] ( ), --表 ...
- 3dContactPointAnnotationTool开发日志(六)
一种可行的思路就是枚举一个模型的三角面片,然后判断三角形是否与另一个物体相交即可.为了让效果更好我想只渲染模型的线框. 在网上查了半天好像Unity里都没有自带的方便的渲染线框的方式,我又自己 ...
- 我们在删除SQL Sever某个数据库表中数据的时候,希望ID重新从1开始,而不是紧跟着最后一个ID开始需要的命令
一.如果数据重要,请先备份数据 二.删除表中数据 SQL: Delete From ('表名') 如:Delete From abcd 三.执行新语句 SQL: dbcc checkident('表 ...
- [计算机网络] TCP的拥塞控制
引言 计算机网络中的带宽.交换结点中的缓存和处理机等,都是网络的资源.在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏.这种情况就叫做拥塞. 拥塞控制就是防止过多 ...
- linux 安装 bitnamid-redmine
Unix 和 Linux 安装 Perl Unix/Linux 系统上 Perl 安装步骤如下: 通过浏览器打开 http://www.perl.org/get.html. 下载适用于 Unix/Li ...
- js滚动大于多少菜单就开始固定
//导航置顶 $(window).scroll(function () { var pos = $(window).scrollTop(); ) { $("#menu").addC ...
- FLT_MIN,FLT_MAX,FLT_EPSILON
FLT_MIN,FLT_MAX,FLT_EPSILON * min positive value */最小的正值#define FLT_MIN 1.175494351e-38F /* max val ...
- Codeforces Round #524 Div. 2 翻车记
A:签到.room里有一个用for写的,hack了一发1e8 1,结果用了大概600+ms跑过去了.惨绝人寰. #include<iostream> #include<cstdio& ...
- BFS的小结
写这类搜索题.首先感觉要有个框架.比如我的框架对于BFS来说(对于DFS,我想有两个一个是递归版一个是栈版).这里是BFS小结.所以介绍一下BFS.我的框架.(也是搜集了网上许多神人的作品.) 1:节 ...
- Android 数据库升级中数据保持和导入已有数据库
一.数据库升级: 在我们的程序中,或多或少都会涉及到数据库,使用数据库必定会涉及到数据库的升级,数据库升级带来的一些问题,如旧版本数据库的数据记录的保持,对新表的字段的添加等等一系列问题,还记得当我来 ...