// 判断当前时间
var now = Date.now()
if(when < now){
throw '开始时间不能小于当前时间'
}
// 如果大于当前时间,则过了相差的时间后再执行此函数
else if(when > now){
setTimeout(function(){
countdown(when, callback)
}, when - now)
} else{
// 开始倒计时,这里的逻辑你没有描述
}
}
注意,js的定时并不是完全准确的。所有的setXXX之类的延时函数都是等计算机空闲下来才会执行
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html charset=utf-8" />
<title>js实现倒计时60秒的简单代码(推荐)</title>
<script type="text/javascript" src="js/jquery.js"></script>
</head>
<body>
<input type="button" id="btn" value="免费获取验证码" onclick="settime(this)" />
<script type="text/javascript">
var countdown=60
function settime(val) {
if (countdown == 0) {
val.removeAttribute("disabled")
val.value="免费获取验证码"
countdown = 5
} else {
val.setAttribute("disabled", true)
val.value="重新发送(" + countdown + ")"
countdown--
setTimeout(function() {
settime(val)
},1000)
}
}
</script>
</body>
</html>
JavaScript简介
JavaScript 是脚本语言
JavaScript 是一种轻量级的编程语言。
JavaScript 是可插入 HTML 页面的编程代码。
JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
JavaScript 课外书
如果 JavaScript 教程学习完毕,并且需要更深入地学习这门语言,《JavaScript 高级教程》绝对是您最好的选择。本教程从 JavaScript 的历史开始讲起,直到当前它对 XML 和 Web 服务的支持。
将学习到如何扩展该语言,以使它适应特殊的需求。
还将学到如何使用 JavaScript 创建无缝的客户机 - 服务器通信。
脚本说明:第一步:把如下代码加入<head>区域中
<SCRIPT language=javascript>
<!--
function generate(form){for(var q=0q<12q++){if(document.me.m.options[document.me.m.selectedIndex].value==q){var m2=q+1
}var txt='<!-- 分三步完成全部脚本:\r\n\r\n'
+' 1. 将第一部分粘贴到HTML的HEAD区\r\n'
+' 2. 将OnLoad事件加入BODY标签内\r\n'
+' 3. 将最后一部分代码加入BODY区 -->\r\n\r\n'
+'<!-- 第一步: 将如下代码粘贴到HTML的HEAD区-->\r\n\r\n'
+'<HEAD>\r\n\r\n<SCRIPT LANGUAGE="JavaScript">\r\n\r\n'
+'<!-- Begin\r\n'
+'var Temp2\n'
+'var timerID = null\n'
+'var timerRunning = false\n'
+'function arry() {\n'
+'this.length = 12\n'
+'this[0] = 31\n'
+'this[1] = 28\n'
+'this[2] = 31\n'
+'this[3] = 30\n'
+'this[4] = 31\n'
+'this[5] = 30\n'
+'this[6] = 31\n'
+'this[7] = 31\n'
+'this[8] = 30\n'
+'this[9] = 31\n'
+'this[10] = 30\n'
+'this[11] = 31\n'
+'}\n'
+'var date = new arry()\n'
+'\n'
+'function stopclock() {\n'
+'if(timerRunning)\n'
+'clearTimeout(timerID)\n'
+'timerRunning = false\n'
+'}\n'
+'\n'
+'function startclock() {\n'
+'stopclock()\n'
+'showtime()\n'
+'}\n'
+'\n'
+'function showtime() {\n'
+'now = new Date()\n'
+'var CurMonth = now.getMonth()\n'
+'var CurDate = now.getDate()\n'
+'var CurYear = now.getFullYear()\n'
+'now = null\n'
+'if ('+document.me.d.options[document.me.d.selectedIndex].value+' <CurDate) {\n'
+'CurDate -= date[CurMonth]CurMonth++\n'
+'}\n'
+'if ('+document.me.m.options[document.me.m.selectedIndex].value+' <CurMonth) {\n'
+'CurMonth -= 12CurYear++\n'
+'}\n'
+'\n'
+'var Yearleft = '+document.me.y.options[document.me.y.selectedIndex].value+' - CurYear\n'
+'var Monthleft = '+document.me.m.options[document.me.m.selectedIndex].value+' - CurMonth\n'
+'var Dateleft = '+document.me.d.options[document.me.d.selectedIndex].value+' - CurDate\n'
+'\n'
+'document.dateform.a.value = Yearleft\n'
+'document.dateform.b.value = Monthleft\n'
+'document.dateform.c.value = Dateleft\n'
+'\n'
+'timerID = setTimeout("showtime()",1000)\n'
+'timerRunning = true\n'
+'}\n'
+'/\/ End -->\r\n<\/script>\r\n'
+'<\/H'+'EAD>\r\n\r\n'
+'<!-- 第二步:将OnLoad事件加入BODY标签内 -->\r\n\r\n'
+'<BO'+'DY Onload="startclock()">\r\n\r\n'
+'<!-- 第三步:将最后一部分代码加入BODY区 -->\r\n\r\n'
+'<form name=dateform>距离'
+m2+'/'+document.me.d.options[document.me.d.selectedIndex].value+'/'
+document.me.y.options[document.me.y.selectedIndex].value
+'还有\n'
+'<input type=text name=a size=2 value="">年\n'
+'<input type=text name=b size=2 value="">月\n'
+'<input type=text name=c size=2 value="">天\n'
+'</fo'+'rm>\r\n\r\n'
+'<'+'!-- 代码长度: 1.95 KB --'+'>'
}document.mail.source.value=txtdocument.mail.source2.value=txt}
//-->
</SCRIPT>
第二步:把如下代码加入区域中:
<center>
<table border=5 bordercolor=blue borderlight=green>
<tr><td align=center><font size=5 color=red face="Arial, Helvetica, sans-serif"><strong>下面框中为脚本显示区</strong></font></td></tr>
<tr><td align=center><form name=me><p><select name=m size=1><option value=0>January </option><option value=1>February </option><option value=2>March </option><option value=3>April </option><option value=4>May </option><option value=5>June </option><option value=6>July </option><option value=7>August </option><option value=8>September </option><option value=9>October </option><option value=10>November </option><option value=11>December </option></select><select name=d size=1><option value=1>1 </option><option value=2>2 </option><option value=3>3 </option><option value=4>4 </option><option value=5>5 </option><option value=6>6 </option><option value=7>7 </option><option value=8>8 </option><option value=9>9 </option><option value=10>10 </option><option value=11>11 </option><option value=12>12 </option><option value=13>13 </option><option value=14>14 </option><option value=15>15 </option><option value=16>16 </option><option value=17>17 </option><option value=18>18 </option><option value=19>19 </option><option value=20>20 </option><option value=21>21 </option><option value=22>22 </option><option value=23>23 </option><option value=24>24 </option><option value=25>25 </option><option value=26>26 </option><option value=27>27 </option><option value=28>28 </option><option value=29>29 </option><option value=30>30 </option><option value=31>31 </option></select><select name=y size=1><option value=1999>1999 </option><option value=2000>2000 </option><option value=2001>2001 </option><option value=2002>2002 </option><option value=2003>2003 </option><option value=2004>2004 </option><option value=2005>2005 </option><option value=2006>2006 </option><option value=2007>2007 </option><option value=2008>2008 </option><option value=2009>2009 </option></select><br><input type=button onclick=generate() value=生成代码 class=yk9><input type=button value=返回 onClick=history.go(-1) name=button class=yk9><p></p></form><form name=mail><input type=hidden name=scriptname value="Countdown Creator"><input type=hidden name=source2 value><table bgcolor=dedfdf border=1 cellpadding=1 width=396><tr><td align=center height=218><textarea name=source rows=12 cols=55 class=yk9></textarea><br><br></td><td></td></tr></table></form></td></tr></table>