`
qiaoqinqie
  • 浏览: 60066 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

用HTML5 Canvas写了个时钟

阅读更多

这周在学canvas,就写了个时钟练习练习

window.onload = function(){
				
				var Timer = function(canvas_id){
					
					this.canvas = document.getElementById(canvas_id);
					this.ctx = this.canvas.getContext('2d');
					this.width = this.canvas.width;
					this.height = this.canvas.height;	
									
				};
				
				
				Timer.prototype = {
					
				
					
					draw:function(){
						
						this.ctx.save();
						this.ctx.translate(0,0);
						this.ctx.clearRect(0,0,this.width,this.height);	
						this.drawBackground();
						this.drawClock();
						this.drawClockPoint();
						this.ctx.restore();
										 
						
						
					},
					
					drawBackground:function(){
						
						this.ctx.globalAlpha  = 0.5;
						this.ctx.fillStyle = 'blue';
						this.ctx.fillRect(0,0,this.width,this.height);
						
					},
					
					drawClock:function(){
						
						
						//move to center
						this.ctx.translate(this.width/2,this.height/2);
						
						
						//inner arc
// 	
						this.ctx.fillStyle = '#333333';
						this.ctx.beginPath();
						this.ctx.arc(0,0,(this.width)/20,0,Math.PI*2,true);
						this.ctx.fill();
// 						
						//outer arc
						this.ctx.fillStyle = 'yellow';
						this.ctx.beginPath();
						this.ctx.arc(0,0,(this.width/2),0,Math.PI*2,true);
						this.ctx.fill();
						
						// Outer arc line
						for(var i=0;i<60;i++){
							this.ctx.save();
							this.ctx.rotate(Math.PI*2/60*i)
							this.ctx.beginPath();
							if(i % 5 == 0){
								this.ctx.moveTo((this.width/2.5),0);
							}else{
								this.ctx.moveTo((this.width/2.2),0);
							}
							
							this.ctx.lineTo(this.width/2,0)
							this.ctx.stroke();
							this.ctx.restore();
						}
						
						
					},
					
					drawClockPoint:function(){
						var currentDate = new Date();
						var hour = currentDate.getHours();
						var minute = currentDate.getMinutes();
						var second = currentDate.getSeconds();
						
						
						// alert(second);
						
						//画秒钟
						this.ctx.save();
						// this.ctx.fillStyle = 'black';
						this.ctx.rotate(Math.PI*2/60*second - Math.PI/2)
						this.ctx.beginPath();
						this.ctx.moveTo(0,0);
						this.ctx.lineTo(this.width/2,0);
						this.ctx.stroke();
					    this.ctx.restore();
					    
					    
					    //画分钟
						this.ctx.save();
						// this.ctx.lineWidth=5;
						this.ctx.fillStyle = 'black';
						this.ctx.rotate(Math.PI*2/60*(minute+second/60)  - Math.PI/2)
						this.ctx.beginPath();
						this.ctx.moveTo(0,0);
						this.ctx.lineTo(this.width/3,0);
						this.ctx.stroke();
					    this.ctx.restore();
					    
					    
					    //画时钟
						this.ctx.save();
						// this.ctx.lineWidth=10;
						this.ctx.fillStyle = 'black';
						this.ctx.rotate(Math.PI*2/12*(hour+minute/60+second/3600) - Math.PI/2)
						this.ctx.beginPath();
						this.ctx.moveTo(0,0);
						this.ctx.lineTo(this.width/3.5,0);
						this.ctx.stroke();
					    this.ctx.restore();
					    
					    
					    
						
					}
					
					
					
					
				};
					
					
				
			 var timer = new Timer('canvas');
			 timer.draw();
			 
			 function run (){
			 	timer.draw();
			 }
			 
			 window.setInterval(run,1000);
			 
				

	
				
			}

 页面代码

很短到一句

<canvas id='canvas' width='200' height='200'></canvas>

 

 

 

 

 

分享到:
评论

相关推荐

    html5:用canvas写一个时钟

    html5---用canvas写一个时钟

    html5 canvas云粒子数字时钟动画特效

    在这个“html5 canvas云粒子数字时钟动画特效”中,我们看到的是Canvas技术与时间显示、粒子系统相结合的应用实例。下面将详细阐述相关知识点。 1. HTML5 Canvas API: HTML5 Canvas是一个基于矢量图形的画布,...

    html5 canvas画布绘制圆形时钟代码

    在这个“html5 canvas画布绘制圆形时钟代码”示例中,我们将深入探讨如何利用Canvas API来创建一个功能完备的圆形时钟。 首先,你需要在HTML文件中创建一个`&lt;canvas&gt;`元素,它将作为我们的画布。例如: ```html &lt;!...

    HTML5 Canvas粒子数字时钟特效.zip

    在这个“HTML5 Canvas粒子数字时钟特效”中,开发者利用Canvas API创建了一个独特的数字时钟,结合了粒子动画效果,为用户带来了一种新颖的视觉体验。 首先,我们要理解Canvas的基本概念。HTML5的 `&lt;canvas&gt;` 标签...

    HTML5 Canvas绘制时钟

    这篇博文“HTML5 Canvas绘制时钟”旨在介绍如何利用Canvas API创建一个实时更新的数字或指针式时钟。我们将深入探讨Canvas的基础知识、相关API以及实现时钟的具体步骤。 1. HTML5 Canvas基础 HTML5 Canvas是一个二...

    Html5-canvas 时钟

    使用html5中的canvas标签+jquery绘制的时钟走动代码

    HTML5 Canvas 动画时钟

    在这个"HTML5 Canvas 动画时钟"的主题中,我们将深入探讨如何利用Canvas API创建一个实时更新的、美观的数字或指针式时钟。 首先,Canvas API 提供了 `canvas` 元素,它是一个矩形区域,可以通过 JavaScript 来绘制...

    HTML5:canvas制作时钟

    在这篇文章中,我们将使用 HTML5 的 Canvas 元素来制作一个时钟。 Canvas 元素的基本使用 在 HTML 文档中,我们可以使用 `&lt;canvas&gt;` 元素来定义一个Canvas区域。例如: ```html &lt;canvas id="clock" width="500...

    HTML5 canvas时钟效果.zip

    在这个“HTML5 canvas时钟效果.zip”压缩包中,包含了一个使用Canvas API实现的时钟显示功能。这个时钟不仅绘制了表盘、时针、分针和秒针,还展示了数字时间,为网页增添了一种实用且动态的元素。 1. **Canvas基本...

    HTML5 canvas 时钟

    javascript HTML5 canvas 时钟

    canvas写一个时钟

    实现时钟的分针、时针和秒针的旋转移动

    15个超绚丽的HTML5 Canvas时钟动画特效

    之前我们有给大家介绍过很多基于...这次要分享的是15个超绚丽的HTML5 Canvas时钟动画特效,它们很多都有各自不同的外观,有几个时钟的造型还非常新颖奇特,因为是基于HTML5 Canvas的,所以你的浏览器需要支持HTML5。

    html5 canvas制作15种数字时钟样式代码

    在这个项目中,“html5 canvas制作15种数字时钟样式代码”是利用Canvas API创建了十五种不同设计风格的数字时钟。这些时钟样式丰富多样,可以满足不同的设计需求,为网页添加独特的视觉效果。 1. **Canvas基础知识*...

    HTML5 Canvas圆形灯笼时钟动画特效.zip

    这款"HTML5 Canvas圆形灯笼时钟动画特效"就是利用Canvas API实现的一个独特设计,将时钟的界面设计成具有传统中国特色的红色灯笼样式,为网页添加了一种别样的互动体验。 首先,我们来看Canvas的基本概念。Canvas是...

    HTML5 Canvas创意时钟特效.zip

    在这个"HTML5 Canvas创意时钟特效"中,我们主要关注的是如何利用JavaScript和HTML5 Canvas API来创建一个创新且引人注目的时钟动画。 首先,Canvas是一个二维绘图上下文,它通过JavaScript提供了对像素级别的操作。...

    HTML5 canvas超逼真的模拟时钟特效

    在本教程中,我们将探讨如何利用HTML5 canvas实现一个超逼真的模拟时钟特效。 首先,我们需要理解canvas的基本结构。HTML5的`&lt;canvas&gt;`标签是一个矩形区域,可以通过JavaScript来绘制图形。在canvas上绘图,我们...

    HTML5 canvas数字时钟15种样式代码.zip

    在这个"HTML5 canvas数字时钟15种样式代码.zip"压缩包中,包含了15个不同的数字时钟设计示例,这些都是利用JavaScript和HTML5的canvas API来实现的网页实时走动时钟。 1. **canvas基本概念**:canvas是一个HTML标签...

    html5 canvas扁平网页时钟代码

    在这个案例中,我们讨论的是如何利用HTML5 Canvas来实现一个扁平风格的网页时钟。 扁平设计是一种流行的设计趋势,它去除了多余的装饰元素,强调简洁、清晰的视觉效果。将这种设计理念应用到网页时钟上,我们可以...

    html5 canvas实现时钟

    使用html5中的canvas,结合javascript实现时钟效果

Global site tag (gtag.js) - Google Analytics