分享两个辩论赛倒计时程序

作者: ligyxy | 分类: 趣站酷软 | 时间: 2009-05-20

标签:,

23

两个辩论赛倒计时程序,分别是用Javascript和jQuery做的。(jQuery部分不是我写的哈。)

这是为学院辩论赛准备的。因为是投影在大屏幕上,不适合用按钮操作,所以我用网页的形式,并尽量避免鼠标操作。

辩论赛倒计时程序 Javascript

1.Javascript


实现功能:在30秒与0秒时有声音提醒。30秒内字体变红。适用于开篇理论或总结陈词环节某方单独计时。

JS部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<script language="javascript" type="text/javascript">
	function   chgMusic(src){  
		if (src){  
			document.getElementById('Music_div').innerHTML="<embed src='"+src+"'></embed>";
        }  
	  }
function CountTimer(totaltime,firstalerttime,obj){
	this.second;
	this.is_CountTimeProcess1_running=false;
	this.CountTimeProcess1_end=function (){
		obj.innerHTML = '<font color="#FF0000">时间到</font>';
		is_CountTimeProcess1_running=false;
	}
	var _self = this;
	this.CountTime=function(){
		this.second -= 1;
		m=Math.floor(this.second/60);   
		se=Math.round(this.second-(Math.floor(this.second/60)*60)); 
		if (this.second == 0)
		{
			chgMusic("1.wav");
			this.CountTimeProcess1_end();
			return ;
		}		
		if (this.second==firstalerttime)
		{
			chgMusic("1.wav");
		}
		if (this.second>firstalerttime)
		{
			obj.innerHTML = +m+'分'+se+'秒';
		}
		else
		{
			obj.innerHTML = '<font color="#FF0000">'+m+'分'+se+'秒</font>';
		}
		if (this.is_CountTimeProcess1_running)setTimeout(function(){_self.CountTime()},1000);
	}
	this.CountTimeProcess1_start=function (){
		if (this.is_CountTimeProcess1_running)return;
		this.is_CountTimeProcess1_running=true;
		this.second=totaltime;
		this.CountTime();		
	}
	this.CountTimeProcess1_start();
}
</script>

 

HTML部分:
1
2
<input onClick="new CountTimer(91,30,document.getElementById('second'))" type="text" />
<div id="second">&nbsp;</div>

 

2.jQuery


实现功能:30秒内字体变红。键盘控制。可双方倒计时交替或同时进行。适用于自由辩论环节双方累积计时。

P.S.需备有jqueryjquery.hotkeys库文件。

 

jQuery部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<script src="jquery-1.3.1.js" type="text/javascript"></script>
<script src="jquery.hotkeys.js" type="text/javascript"></script>
<script>
jQuery.fn.countDown = function(settings,to) {
	if(!to && to != settings.endNumber) { to = settings.startNumber; }
	this.data("CR_currentTime",to);
	var s;
	if (to<=30)s='<div style = "color:red">'+to+'秒</div>';
		else s='<div>'+to+'秒</div>';
 
	$(this).html(s).animate({"none":"none"},settings.duration,'',function() {
		if(to > settings.endNumber + 1) {
			$(this).countDown(settings,to - 1);
		}else{
			settings.callBack(this);
		}
	});		
	return this;
};
jQuery.fn.CRcountDown = function(settings) {
	settings = jQuery.extend({
		startNumber: 240,
		endNumber: 0,
		duration: 1000,
		callBack: function() { }
	}, settings);
	this.data("CR_duration",settings.duration);
	this.data("CR_endNumber",settings.endNumber);
	this.data("CR_callBack",settings.callBack);
	return this.stop().countDown(settings);
};
jQuery.fn.pause = function(settings) {
	return this.stop();
};
jQuery.fn.reStart = function() {
	return this.pause().CRcountDown({
		startNumber : this.data("CR_currentTime"),
		duration : 	this.data("CR_duration"),
		endNumber : this.data("CR_endNumber"),
		callBack : this.data("CR_callBack")
	});
};
$.hotkeys.add('a', function(){          //a键控制正方开始
	$("#test").CRcountDown({
				startNumber:240,      //正方倒计时时间
				callBack:test
			})
			.css("color","black");
});
$.hotkeys.add('s', function(){          //s键控制正方暂停
	$("#test").pause();
});
$.hotkeys.add('d', function(){          //d键控制正方恢复
	$("#test").reStart();
});
function test(){
	$("<div class=t1>时间到</div>")
			  .hide()
			  .fadeIn(1000)
			  .appendTo("body");
}
$.hotkeys.add('z', function(){          //z键控制正方开始
	$("#test2").CRcountDown({
				startNumber:240,      //反方倒计时时间
				callBack:test2
			});
});
$.hotkeys.add('c', function(){          //c键控制反方暂停
	$("#test2").pause();
});
$.hotkeys.add('x', function(){          //x键控制正方恢复
	$("#test2").reStart();
});
function test2(){
	$("<div class=t2>时间到</div>")
			  .hide()
			  .fadeIn(1000)
			  .appendTo("body");
}
</script>

 

HTML部分:
1
2
<div id="test">&nbsp;</div>
<div id="test2">&nbsp;</div>

 

自由辩论环节的倒计时要求比较特殊,即要求能暂停,能恢复,双方累积计时。所以不得不用jQuery。总共控制六个按钮,操作相对复杂,应用前需要熟悉。


已有 23 位大师予以指正

用PowerPoint做把XD当年偶就是用的PP做的倒计时

不熟悉VBA啊。。。只会JS

不需要VB啊,PowerPoint直接做个幻灯片就行了XD

尝试了两个小时,于是失败了XD

牛贴!我顶!
这是怎么实现的啊

这个。。真不难的。。不过很多也是朋友帮忙下完成的。

几时我也会这些,一点都看不懂。

看到代码晕乎乎

jQuery还能这样用?

不过就是个jQuery的程序罢了.因为JS没法实现暂停

PPT里能插入FLASH吗?感觉还是FLASH效果好啊

PPT里当然能插了。。还不止一种方法。但是不方便控制。
现在看来如果不需要暂停的话,这种东西用视频做是最好了。

嗯,这种东西写出来好,每年都造福很多人啊~

这是我断断续续折腾了好几周的结果~~唉。。

有谁能说的在具体点吗……我是一点看不懂啊……是吧flash直接插入到ppt里吗……那那些代码直接输入,就会象VB一样运行了吗……呵呵,本人是不会再加上笨点,希望各位帮帮忙啦……谢谢啦……

有谁能说的在具体点吗……flash直接插入到ppt里吗……那那些代码直接输入,就会象VB一样运行了吗……呵呵,本人是不会再加上笨点,希望各位帮帮忙啦……谢谢啦……

这个代码不是基于ppt也不是flash,是HTML网页。主要代码是javascript代码。 最后成品是个网页。

站点不错哦。

最近有点忙,很久没有来看看了!

牛!博主的文章不错。有空记得回访。http://www.sd-seo.com.cn

不错,大家来交流学习下。

博主的博客做的不错,不知道网站做的怎么样啊,有时间换个链接啊

文章不错,模板也挺不错的。

我也说几句