一、基本目标
在JavaScript设计一个分秒倒计时器,一旦时间完成使按钮变成不可点击状态
具体效果如下图,为了说明问题,调成每50毫秒也就是每0.05跳一次表,
真正使用的时候,把window.onload=function(){...}中的setInterval("clock.move()",50);从50调成1000即可。
在时间用完之前,按钮还是可以点击的。
时间用完之后,按钮就不能点击了。
二、制作过程
time remaining 剩余时间:
<script><br>/*主函数要使用的函数,进行声明*/<br>var clock=new clock();<br>/*指向计时器的指针*/<br>var timer;<br>window.onload=function(){<br> /*主函数就在每50秒调用1次clock函数中的move方法即可*/<br> timer=setInterval("clock.move()",50);<br> }<br>function clock(){<br> /*s是clock()中的变量,非var那种全局变量,代表剩余秒数*/<br> this.s=140;<br> this.move=function(){<br> /*输出前先调用exchange函数进行秒到分秒的转换,因为exchange并非在主函数window.onload使用,因此不需要进行声明*/<br> document.getElementById("timer").innerHTML=exchange(this.s);<br> /*每被调用一次,剩余秒数就自减*/<br> this.s=this.s-1;<br> /*如果时间耗尽,那么,弹窗,使按钮不可用,停止不停调用clock函数中的move()*/<br> if(this.s<0){<br/> alert("时间到");<br/> document.getElementById("go").disabled=true;<br/> clearTimeout(timer);<br/> }<br/> }<br/> }<br/>function exchange(time){<br/> /*javascript的除法是浮点除法,必须使用Math.floor取其整数部分*/<br/> this.m=Math.floor(time/60);<br/> /*存在取余运算*/<br/> this.s=(time%60);<br/> this.text=this.m+"分"+this.s+"秒";<br/> /*传过来的形式参数time不要使用this,而其余在本函数使用的变量则必须使用this*/<br/> return this.text;<br/>}<br/></script>