html5时钟实现代码

我的J8叫炫迈

我的J8叫炫迈

2016-02-19 12:43

下面图老师小编跟大家分享一个简单易学的html5时钟实现代码教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

复制代码代码如下:
!DOCTYPE HTML
html
head
meta charset="UTF-8"
style type="text/css"
canvas{position:absolute;top:0px;left:0px;}
/style
title时钟/title
/head
body
canvas id="canvas" width="200" height="200"/canvas
canvas id="p_canvas" width="200" height="200"/canvas
script type="text/javascript"
//获取绘图对象
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');

var p_canvas = document.getElementById('p_canvas');
var p_context = p_canvas.getContext('2d');

var height=200,width=200;
//画大圆
context.beginPath();
context.strokeStyle="#009999";
context.arc(width/2,height/2,width/2-1,0,Math.PI*2,true);
context.stroke();
context.closePath();
//画中间点
context.beginPath();
context.fillStyle="#000";
context.arc(width/2,height/2,3,0,Math.PI*2,true);
context.fill();
context.closePath();

//画小刻度
var angle = 0,radius = width/2 - 4;
for(var i=0;i60;i++){
context.beginPath();
context.strokeStyle="#000";
//确认刻度的起始点
var x = width/2 + radius*Math.cos(angle),y = height/2 + radius*Math.sin(angle);
context.moveTo(x,y);
//这里是用来将刻度的另一点指向中心点,并给予正确的角度
//PI是180度,正确的角度就是 angle+180度,正好相反方向
var temp_angle = Math.PI +angle;
context.lineTo(x +3*Math.cos(temp_angle),y+3*Math.sin(temp_angle));
context.stroke();
context.closePath();
angle+=6/180*Math.PI;
}
//大刻度
angle = 0,radius = width/2 - 4;
context.textBaseline = 'middle';
context.textAlign = 'center';
context.lineWidth = 2;
for(var i=0;i12;i++){
var num = i+312? i+3-12:i+3 ;
context.beginPath();
context.strokeStyle="#FFD700";
var x = width/2 + radius*Math.cos(angle),y = height/2 + radius*Math.sin(angle);
context.moveTo(x,y);
var temp_angle = Math.PI +angle;
context.lineTo(x +8*Math.cos(temp_angle),y+8*Math.sin(temp_angle));
context.stroke();
context.closePath();
//大刻度 文字
context.fillText(num,x+16*Math.cos(temp_angle),y+16*Math.sin(temp_angle));
angle+=30/180*Math.PI;
}

function Pointer(){
var p_type = [['#000',70,1],['#ccc',60,2],['red',50,3]];
function drwePointer(type,angle){
type = p_type[type];
angle = angle*Math.PI*2 - 90/180*Math.PI;
var length= type[1];
p_context.beginPath();
p_context.lineWidth = type[2];
p_context.strokeStyle = type[0];
p_context.moveTo(width/2,height/2);
p_context.lineTo(width/2 + length*Math.cos(angle),height/2 + length*Math.sin(angle));
p_context.stroke();
p_context.closePath();

}
setInterval(function (){
p_context.clearRect(0,0,height,width);
var time = new Date();
var h = time.getHours();
var m = time.getMinutes();
var s = time.getSeconds();
h = h12?h-12:h;
h = h+m/60;
h=h/12;
m=m/60;
s=s/60;
drwePointer(0,s);
drwePointer(1,m);
drwePointer(2,h);
},500);
}
var p = new Pointer();
/script
/body
/html
展开更多 50%)
分享

猜你喜欢

html5时钟实现代码

Web开发
html5时钟实现代码

html5 canvas 简单画板实现代码

Web开发
html5 canvas 简单画板实现代码

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

HTML5上传文件显示进度的实现代码

Web开发
HTML5上传文件显示进度的实现代码

基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码

Web开发
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

html5 兼容IE6结构的实现代码

Web开发
html5 兼容IE6结构的实现代码

html5记忆翻牌游戏实现思路及代码

Web开发
html5记忆翻牌游戏实现思路及代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

面向对象编程:Java复杂数据类型用法

面向对象编程:Java复杂数据类型用法

HTML5安全介绍之内容安全策略(CSP)简介

HTML5安全介绍之内容安全策略(CSP)简介
下拉加载更多内容 ↓