`
wangming2012
  • 浏览: 141303 次
  • 性别: Icon_minigender_1
  • 来自: 枣阳
社区版块
存档分类
最新评论

用Html5画了一个时间表

阅读更多
	.myClass{
		margin: 20px atuo;
		position:relative;
		width:800px;
		}
	#panel{
		border: 1px solid #CCC;}

	var thisObj = function(){
		this.canvas = document.getElementById("panel");	
		this.context = this.canvas.getContext("2d");
		this.hour = 1;
		this.minute = 29;
		this.second = 1;
	}
	
	var i;
	i = window.setInterval(function(){
		thisObj.context.clearRect(-200, -100, thisObj.canvas.width, thisObj.canvas.height);
		setObjValue();
		drawHour();
		drawHourFont();	
		drawMinute();
		drawCenter();
		drawClockwise();
		drawMinuteHand();
		drawSeconds();
		setAuthor();
	},10);
	
	function setObjValue(){
		if(thisObj.second == 60){
			thisObj.second = 1;
			thisObj.minute = thisObj.minute + 1;
		}
		if(thisObj.minute == 60){
			thisObj.minute = 1;
			thisObj.hour = thisObj.hour + 1;
		}
		thisObj.second = thisObj.second + 1;
	}
	
	function init(){		
		thisObj = new thisObj();
		thisObj.context.translate(200, 100);
	}
	
	//小时
	function drawHour(){
		thisObj.context.save();
		thisObj.context.strokeStyle = '#FF0000';
		thisObj.context.beginPath();//注意
		thisObj.context.arc(200, 100, 150, 0, Math.PI * 2, false);
		thisObj.context.stroke();
		thisObj.context.restore();
	}
	
	//设置字
	function drawHourFont(){
		saveAndRestore(function(){
			var j = 4;
			thisObj.context.lineWidth = 4;
			for(var i = 0; i < 12; i ++){
				thisObj.context.rotate(Math.PI / 6);
				thisObj.context.beginPath();
				thisObj.context.moveTo(140, 0);
				thisObj.context.lineTo(150, 0);
				thisObj.context.fillText(j+"点", 160, 0);
				j = (j == 12 ? 0: j);
				j++;
				thisObj.context.stroke();
			}
		});
	}
	
	//分钟
	function drawMinute(){
		saveAndRestore(function(){
			for(var i = 0; i < 60; i ++){
				if(i % 5 != 0){
					thisObj.context.beginPath();
					thisObj.context.moveTo(145, 0);
					thisObj.context.lineTo(150, 0);
					thisObj.context.stroke();
				}
				thisObj.context.rotate(Math.PI / 30);
			}	
		});
	}
	
	//圆心
	function drawCenter(){
		saveAndRestore(function(){
			thisObj.context.beginPath();
			//thisObj.context.fillStyle = '#0000FF';
			thisObj.context.arc(0,0, 10, 0, Math.PI * 2, false);
			thisObj.context.fill();
		});				
	}
	
	//时针
	function drawClockwise(){
		saveAndRestore(function(){
			thisObj.context.rotate(thisObj.hour * (Math.PI / 6));
			commHand(0);
		});
	}
	
	//分针
	function drawMinuteHand(){
		saveAndRestore(function(){
			thisObj.context.rotate(thisObj.minute * (Math.PI / 30));			
			commHand(-30);	
		});
	}
	
	//秒针
	function drawSeconds(){
		saveAndRestore(function(){
			thisObj.context.rotate(thisObj.second * (Math.PI / 30));
			commHand(-60);
		});
	}
	
	function commHand(i){
		thisObj.context.fillRect(-5, -2, 10, -60 + i);
		thisObj.context.fill();
		
		thisObj.context.lineJoin = 'round';
		thisObj.context.moveTo(-10, -61+ i);
		thisObj.context.lineTo(0, -70+ i);
		thisObj.context.lineTo(10, -61+ i);
		thisObj.context.lineTo(10, -61+ i);
		thisObj.context.lineTo(-10, -61+ i);
		thisObj.context.fill();	
	}
	
	function saveAndRestore(funCall){
		thisObj.context.save();
		thisObj.context.translate(200, 100);
		funCall();
		thisObj.context.restore();
	}
	
	function setAuthor(){
		saveAndRestore(function(){
			thisObj.context.font = '20px impact';
			thisObj.context.fontStyle = '#FF0000';
			thisObj.context.fillText('作者:王明', 260, 150);
			thisObj.context.fillText('2012年10月18日', 260, 180);
			thisObj.context.stroke();
		});
	}
	window.addEventListener("load", init, true);

    <div class="myClass">
    	<canvas id="panel" width="800" height="433" />
    </div>
  • 大小: 20.7 KB
0
8
分享到:
评论

相关推荐

    HTML5制作简单的钟表

    本教程将详细讲解如何利用HTML5来制作一个简单的钟表。 首先,HTML5的核心在于其语义化标签,这些标签如`&lt;header&gt;`, `&lt;nav&gt;`, `&lt;article&gt;`, `&lt;section&gt;`等,帮助我们更好地组织页面结构。在制作钟表的场景下,我们...

    里面有个css3、html5技术分别做的钟表

    在描述中的钟表应用中,HTML5可能通过使用`&lt;canvas&gt;`标签来绘制动态的钟面,这是一个用于图形绘制的画布元素,可以通过JavaScript进行编程操作。此外,HTML5的时间元素`&lt;time&gt;`也可能被用来展示和格式化时间,提高...

    html5手机端动画展开收缩导航菜单特效

    通过设置不同的时间点(如0% 和100%),可以定义元素从一个状态平滑地变换到另一个状态。此外,CSS3的transition属性也可能被用来处理点击事件时的即时过渡效果,例如改变菜单项的透明度、大小或位置。 JavaScript...

    HTML5动画效果的图片放大缩小特效.rar

    在本案例中,"HTML5动画效果的图片放大缩小特效.rar"是一个利用这两种技术实现的图片动态缩放效果。这个压缩包包含了一个演示此功能的代码示例,文件名为"codesc.net"。 首先,我们要理解HTML5的`&lt;img&gt;`标签,它是...

    html5花朵表情动画特效

    这款“html5花朵表情动画特效”就是一个很好的例子,它利用HTML5的强大力量,结合SVG(Scalable Vector Graphics)来实现生动有趣的动画效果。SVG是一种基于XML的矢量图像格式,它允许在网页上创建和显示高质量的...

    HTML5动画引导页个人网页模板.zip

    这个“HTML5动画引导页个人网页模板.zip”压缩包文件显然是为了帮助用户创建一个带有动态效果的个人简历网页,使求职者在众多应聘者中脱颖而出。 1. **HTML5动画**:HTML5引入了多种新的元素和API,如canvas(画布...

    HTML写的一个小小的秒表程序

    HTML秒表程序是一种基于Web...总的来说,这个HTML秒表程序是一个很好的实践示例,展示了前端开发中的基本技术以及如何用它们来构建实用的交互式功能。通过深入理解这些知识点,开发者可以进一步提升自己的Web开发技能。

    html5画一个计时器钟

    在这个场景中,我们将探讨如何使用HTML5的`&lt;canvas&gt;`元素来实现一个计时器钟。 首先,我们需要在HTML文件中创建一个`&lt;canvas&gt;`元素。这个元素将作为我们画钟的画布。例如: ```html &lt;!DOCTYPE html&gt; &lt;html lang=...

    网红华为太空手表太空人表盘代码HTML5编写

    要完成这样一个项目,开发者需要深入理解HTML5、CSS3和JavaScript的基础知识,同时具备良好的用户体验设计和可穿戴设备开发经验。通过这样的实践,不仅可以提升技术技能,也能把握当前流行的审美趋势,满足市场需求...

    酷炫 html5页面加载 loading动画效果 demo 基于原生无第三方依赖

    HTML5页面加载动画是网页设计中的一个重要元素,它在页面内容完全加载之前为用户提供视觉反馈,使得用户体验更加流畅。本示例"酷炫html5页面加载loading动画效果demo"是基于原生JavaScript和CSS实现的,无需任何第三...

    HTML5 爱心表白动画

    总的来说,“HTML5爱心表白动画”充分利用了HTML5的现代特性,结合JavaScript的动态效果,创造了一个富有情感表达力的互动体验。无论是动画的流畅性,还是互动的趣味性,都展示了HTML5和JavaScript在现代网页开发中...

    HTML5 svg炫酷波浪线条动画插件

    TweenMax是一个强大的JavaScript动画库,提供了丰富的缓动函数和时间控制,可以轻松地对任何CSS属性、SVG属性或JavaScript对象进行平滑的动画处理。 jQuery是一个广泛使用的JavaScript库,简化了DOM操作、事件处理...

    一款基于HTML5和jquery小球跳舞的时间动画

    标题中的“一款基于HTML5和jquery小球跳舞的时间动画”是指一个使用HTML5技术和jQuery库创建的互动动画,其中小球会随着时间的流逝而进行动态的舞蹈效果。这个项目结合了前端开发的两个重要技术,HTML5的Canvas元素...

    HTML5 CSS3 设计表

    本项目“HTML5 CSS3 设计表”聚焦于使用这两种技术来创建一个无图时钟,展现了H5和CSS3在动态效果和视觉设计上的强大功能。 HTML5作为新一代的超文本标记语言,引入了许多新元素,例如`&lt;canvas&gt;`,用于在网页上绘制...

    HTML5 粒子动画背景登录页面模板

    2. **Canvas API**:`&lt;canvas&gt;`元素提供了一个画布,开发者可以利用JavaScript的Canvas API在上面绘制图形。粒子动画通常涉及到大量的坐标计算和重绘,Canvas API的`fillRect()`, `clearRect()`, `beginPath()`, `...

    Html中用table画斜线

    一个简单的表格由`&lt;table&gt;`标签开始,包含若干行`&lt;tr&gt;`(表格行)和列`&lt;td&gt;`(表格数据单元格)。例如: ```html 内容1 内容2 内容3 内容4 ``` 要在`&lt;td&gt;`中添加斜线,有几种常见的方法: 1. **...

    html5 svg线条动态绘制iphone边框动画效果

    SVG(Scalable Vector Graphics)是HTML5中的一个关键元素,用于创建可缩放的矢量图形。这个压缩包中的内容是一个利用HTML5 SVG技术实现的iPhone边框动态绘制动画效果。 首先,我们来详细解释SVG。SVG是一种基于XML...

    HTML5 画布 人物行走

    首先,HTML5 画布是一个矩形区域,通过 `&lt;canvas&gt;` 标签在 HTML 文档中定义。它的宽高可以通过 `width` 和 `height` 属性设置。例如: ```html &lt;canvas id="myCanvas" width="800" height="600"&gt;&lt;/canvas&gt; ``` 接着...

    利用HTML5和CSS3实现很酷的3D纸片折叠动画效果

    在本项目中,我们将探讨如何利用HTML5和CSS3实现一个令人印象深刻的3D纸片折叠动画效果。 首先,HTML5(超文本标记语言第五版)在结构上对网页元素进行了优化,引入了新的语义化标签,如、和等,使页面结构更加清晰...

    圆形表盘高亮的HTML5时钟.rar

    这个名为"圆形表盘高亮的HTML5时钟.rar"的压缩包文件包含了一个使用HTML5和CSS3技术实现的动态圆形时钟的源代码。这个网页时钟设计独特,表盘采用圆形布局,具有高亮和闪烁的发光效果,为用户提供了视觉上的吸引力。...

Global site tag (gtag.js) - Google Analytics