用canvas 做一个钟表

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin: 0;
padding: 0;
list-style: none;
}
#box{
width: 420px;
margin: 50px auto 0;

}
#cav{
background:#F2E7E7;
}
</style>
</head>
<body>
<div id="box">
<canvas id="cav" width="420" height="420"></canvas>
</div>
<script>
var cav=document.getElementById(‘cav‘);
var ctx=cav.getContext(‘2d‘);
clock();
setInterval(clock,1000);
function clock(){

var img=new Image();

img.src=‘../img/05.jpg‘;
ctx.beginPath();
ctx.drawImage(img,0,0,420,420);
ctx.closePath();

ctx.beginPath();
ctx.strokeStyle=‘#AC72A9‘;
ctx.lineWidth=10;
ctx.arc(210,210,200,0,2*Math.PI,true);
ctx.stroke();
ctx.closePath();
ctx.clip();
//要先画分钟的,再画小时的,让小时的覆盖住整点的那个
//分钟的刻度 每分钟转6deg
for (var i = 0; i < 60; i++) {
ctx.save();
ctx.translate(210,210);//把画布的原点移到圆的原点处
ctx.rotate(6*i*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,-185);
ctx.lineTo(0,-195);
ctx.closePath();
ctx.strokeStyle=‘#D859A1‘;
ctx.lineWidth=8;
ctx.stroke();
ctx.restore();
}
// 小时的刻度 ,每小时转30deg
for (var i = 0; i < 12; i++) {
ctx.save();
ctx.translate(210,210);//把画布的原点移到圆的原点处
ctx.rotate(30*i*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,-175);
ctx.lineTo(0,-195);
ctx.closePath();
ctx.strokeStyle=‘#29B2D9‘;
ctx.lineWidth=10;
ctx.stroke();
ctx.restore();
}
//获取当前时间
var dates=new Date();
var h=dates.getHours();
var m=dates.getMinutes();
var s=dates.getSeconds();
h=h+m/60;//当前的几点几小时
m=m+s/60;//当前是几点几分
//画时间
var h2=dates.getHours();
var m2=dates.getMinutes();
var str1=h2>9?h2:‘0‘+h2;
var str2=m2>9?m2:‘0‘+m2;
var str=str1+‘:‘+str2;
ctx.beginPath();
ctx.fillStyle=‘#12B64E‘;
ctx.fillText(str,170,350);
ctx.font=‘bold 30px 微软雅黑‘;
ctx.closePath();

//时针
ctx.save();
ctx.translate(210,210);//把画布的原点移到圆的原点处
ctx.rotate(30*h*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,15);
ctx.lineTo(0,-130);
ctx.closePath();
ctx.strokeStyle=‘#29B2D9‘;
ctx.lineWidth=10;
ctx.stroke();
ctx.restore();
//分针
ctx.save();
ctx.translate(210,210);//把画布的原点移到圆的原点处
ctx.rotate(6*m*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,15);
ctx.lineTo(0,-150);
ctx.closePath();
ctx.strokeStyle=‘#D859A1‘;
ctx.lineWidth=5;
ctx.stroke();
ctx.restore();
//秒针
ctx.save();
ctx.translate(210,210);//把画布的原点移到圆的原点处
ctx.rotate(6*s*Math.PI/180);
ctx.beginPath();
ctx.moveTo(0,15);
ctx.lineTo(0,-170);
ctx.strokeStyle=‘#D01B5A‘;
ctx.lineWidth=3;
ctx.stroke();
ctx.closePath();
//秒针底部的圆圈
ctx.beginPath();
ctx.arc(0,0,8,0,2*Math.PI,true);
ctx.fillStyle=‘#D859A1‘;
ctx.strokeStyle=‘#D01B5A‘;
ctx.lineWidth=3;
ctx.stroke();
ctx.fill();
ctx.closePath();
//秒针顶部的圆
ctx.beginPath();
ctx.arc(0,-155,4,0,2*Math.PI,true);
ctx.fillStyle=‘#D859A1‘;
ctx.strokeStyle=‘#D01B5A‘;
ctx.lineWidth=3;
ctx.stroke();
ctx.fill();
ctx.closePath();
ctx.restore();

}
</script>
</body>
</html>

效果图:

时间: 2024-08-04 03:46:37

用canvas 做一个钟表的相关文章

【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎

Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不惭而标题党了,离真正的粒子引擎还有点远.废话少说,先看[demo],扫描后点击屏幕有惊喜哦… 本文将教会你做一个简单的canvas粒子制造器(下称引擎). 世界观 这个简单的引擎里需要有三种元素:世界(World).发射器(Launcher).粒子(Grain).总得来说就是:发射器存在于世界之中,

canvas 画一个钟表

只是作为练习,没怎么抽象,都放在函数里面,只是简单的实现. 首先说下思路,将一个圆分成12份做表盘,然后用lineTo等方法话指针,最后用一个setInterval刷新画布,让指针每隔一秒动一下. js代码如下: window.onload = function () { var canvas = document.getElementById('myCanvas'), context = canvas.getContext('2d'), centerX = canvas.height / 2,

用HTML5 Canvas做一个画图板

使用HTML5可以非常简单地在canvas上实现画图应用,用支持html5的浏览器便可在下面的区域进行绘画,要看到演示效果,请确保你的浏览器支持HTML5: 功能很简单,原理其实和拖放是类似的,主要是三个事件: 在canvas 上绑定mousedown 事件以标志绘画的开始(调用moveTo 移动画笔)澳门娱乐场 在document 上绑定mousemove 事件来处理绘画时的行为(调用lineTo 以及stroke 进行绘画) 在document 上绑定mouseup 事件以标志绘画的结束(解

canvas 做一个小鸟运动的小游戏 (第一步)

1. 首先有一个loadImage.js     代码如下: function loadImage(imgUrl,fn){ var imgObj = {}; var tempImg,load = 0, imgLength = 0; for(var key in imgUrl){ imgLength++; tempImg = new Image(); tempImg.onload = function () { load++; if( load >= imgLength){ fn( imgObj

用canvas画一个钟表

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> body{background:#000;} #c1{background-color: #fff;} </style> <script> window.onload=function()

用Canvas绘制一个钟表

效果图: <html> <head></head><body> <canvas id="canvas1"height="500px"width="500px">您的浏览器不支持canvas标签.</canvas> <script> var c=document.getElementById("canvas1"); var clock=c.get

用canvas实现一个colorpicker

http://www.cnblogs.com/ufex/p/6382982.html 每个浏览器都有自己的特点,比如今天要做的colorpicker就是,一千个浏览器,一千个哈姆雷特,一千个colorpicker.今天canvas系列就用canvas做一个colorpicker. ********************************************************************** 效果图和demo 突然翻到了之前用js和dom写的一个colorpicker

【canvas系列】用canvas实现一个colorpicker

每个浏览器都有自己的特点,比如今天要做的colorpicker就是,一千个浏览器,一千个哈姆雷特,一千个colorpicker.今天canvas系列就用canvas做一个colorpicker. ********************************************************************** 效果图和demo 突然翻到了之前用js和dom写的一个colorpicker,比较挫,扔张图就好(old) 这个真的很挫,性能很差,因为每一个可选的颜色值都是一个

canvas制作简单钟表

之前用html+css+JavaScript实现了一个简单钟表,但还是有一些问题,主要是一些css属性不同浏览器支持效果不一样,所以尝试用 canvas实现了一个简单的钟表,效果在下方,当然了,采用canvas同样会有一些浏览器不支持... 这里只讨论canvas的实现方式.^_^ html部分 html部分很简单,写入canvas标签,其id设置为“canvas”,用css设置成居中显示,代码如下: 1 <!doctype html> 2 <html> 3 <head>