`
wangming2012
  • 浏览: 138811 次
  • 性别: 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 css3催眠怀表摇摆动画特效

    html5 css3催眠怀表摇摆动画特效

    HTML5 Canvas核心技术 图形、动画与游戏开发

    176 4.1.2 drawimage()方法的用法 177 4.2 图像的缩放 179 4.3 将一个canvas绘制到另一个canvas之中 183 4.4 离屏canvas 186 4.5 操作图像的像素 189 4.5.1 获取图像数据 189 4.5.2 修改图像数据 195 4.6 ...

    Saola Animate(html5动画制作软件) v2.0.3.zip

    由于精灵表,你可以创建一个动画人物代表一个或几个动画序列,而只需要加载一个文件。 4、自动关键帧 自动关键帧允许在创建动画时自动生成关键帧。因此,它使关键帧更容易,并缩短了你放入动画的时间。 5、运动...

    CSS3手表样式倒计时动画代码

    今天分享一款利用CSS3实现的手表样式倒计时动画代码,有4种不同颜色主题皮肤可供选择,界面非常美观。倒计时前先拖动小圆设置开始时间,然后点击开始按钮进行倒计时。

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

    圆形表盘高亮的HTML5时钟,网页电子钟表,动画效果的时钟特效,表盘的外框是一闪一闪发光,动态的发光效果,打开页面后,各个指针自动指向当前时间位置,秒针会自动走起。

    HTML5动态的网页时钟-圆形的钟表.rar

    jQuery css3实现HTML5动态的网页时钟-圆形的钟表,那些指针的走动动画完全是HTML5生成的动画效果,运行后自动获取Windows时间并定位时钟指针,开始走时,效果超棒。本时钟设计简洁明快。

    HTML5 3D魔方日历行程表特效.zip

    HTML5 3D魔方日历行程表特效是一款有趣的悬停效果和背景色动画的3D立方体降临日历动画特效。

    某公司大事记特效-HTML5时间轴.rar

    某公司大事记特效-HTML5动态时间轴特效,基于impress.js插件和HTML5 css3共同实现,动画效果很炫,另外还带有音效,可学习到不少的HTML5技巧。

    HTML5 SVG圆盘时钟动画.zip

    HTML5 SVG圆盘时钟动画是一款能准确获取本地的时间,并且秒针、分针、时针可以走动,效果还不错。

    HTML5响应式3D翻转动画效果.zip

    HTML5响应式3D翻转动画效果基于jquery.1.10.2.min.js制作,虚拟主机价格表,月付/年付,3D翻转动画。

    html5基于canvas实现的圆形时钟效果源码.zip

    html5基于canvas实现的圆形时钟效果源码,可实现实时显示当前时间的功能,时钟表盘上同步对应高亮显示上午(AM)或下午(PM)。且指针转动流畅自然,效果逼真。该源码还可用于手机端显示当前时间。是一款非常优秀的实用...

    CSS3手表倒计时动画 可自定义主题皮肤

    早段时间,我们为大家分享过一些比较炫酷和实用的时钟手表插件,比如这款纯CSS3 3D立体圆盘时钟动画和HTML5仿Apple Watch时钟动画,效果都非常不错。今天我们要利用CSS3来实现一个手表样式的倒计时动画,功能相对...

    animator:HTML5 Sprite工作表动画制作器

    Animator是一个方便的网络应用程序,它可以帮助想要使用Sprite工作表快速预览动画序列的任何人。 确实没什么,您只需将图像拖放到巨大的灰色框中,然后设置X和Y方向上的帧数,每帧之间的时间(以毫秒为单位),...

    html5 3D房屋布置图预览交互特效.rar

    html5制作一个高度实验的3D房间布局的画廊,目的是展示展览的细节在一个...每个艺术家都有一个“房间”在画廊,显示展览的时间表。当点击其中一个导航按钮,我们离开当前的房间,并继续到下一个(或以前)一个动画。

    class-time-table:这是学校或拼贴画时间表。 使用HTML和CSS开发

    上课时间表 这是学校或大学的时间表。 使用HTML和CSS开发。 时间表包含在教师姓名中,因此您可以根据需要进行更改。

    dygraphs使用JavaScript和HTML画布标记实现的时间序列交互式可视化曲线

    dygraphs 是一个开源的Javascript库,它可以产生一个可交互式的,可缩放的的曲线表。其可以用来显示大密度的数据集(比如股票,气温,等等),并且可以让 用户来浏览和解释这个曲线图。在它的主页,你可以看到一些...

    html5 svg卡巴拉日历特效.zip

    html5 svg卡巴拉日历特效是一款卡巴拉日历动画html5实例特效。

    html5 canvas圆形时钟代码.zip

    html5 canvas圆形时钟代码是一款采用canvas画布实现的本地时钟代码下载。

    arcgis工具

    使用一个属性字段作为超链 在内容表中右击包含一个超链接字段的图层,然后点击properties ,单击Display选项卡。选中Supprt Hyper3. Hyperlinks using field选项,单击下拉箭头并点击一个字段。 单击Document or URL...

    LiquidFX:LiquidFX是一个Blender \ Armory3D节点,可使用PBR工作流程简化简单的动画液体表面

    LiquidFX LiquidFX是一个Blender \ Armory3D节点,可使用PBR工作流程简化简单的动画液体表面。 它对所有目的都是免费的-MIT许可证。 该节点当前与Blender 2.8的最新Armory3D版本一起使用,但不适用于Eevee渲染引擎。...

Global site tag (gtag.js) - Google Analytics