A-A+
javascript中按setTimeout实现计时示例
倒计时这种功能在很多网站可以看到,特别是团购产品的网站倒计时特别多,下面我来介绍js倒计时实现程序,有需要的朋友可参考参考。
js代码如下:
- /**
- * 倒计时函数
- * 需要在按钮上绑定单击事件
- * 如: <INPUT contentEditable=false value=发送短信 type=button data-cke-pa-onclick="setInterval('countDown(this,30)',1000);" data-cke-editable="1">
- * 30代表秒数,需要倒计时多少秒可以自行更改
- */
- function countDown(obj,second){
- // 如果秒数还是大于0,则表示倒计时还没结束
- if(second>=0){
- // 获取默认按钮上的文字
- if(typeof buttonDefaultValue === 'undefined' ){
- buttonDefaultValue = obj.defaultValue;
- }
- // 按钮置为不可点击状态
- obj.disabled = true;
- // 按钮里的内容呈现倒计时状态
- obj.value = buttonDefaultValue+'('+second+')';
- // 时间减一
- second--;
- // 一秒后重复执行
- setTimeout(function(){countDown(obj,second);},1000);
- // 否则,按钮重置为初始状态
- }else{
- // 按钮置未可点击状态
- obj.disabled = false;
- // 按钮里的内容恢复初始状态
- obj.value = buttonDefaultValue;
- }
- }
html代码如下:
- <h1>
- js按钮三十秒倒计时效果</h1>
- <hr />
- <p>
- <input onclick="countDown(this,30);" type="button" value="发送短信" /></p>
- <hr />
- <h3>
- 琼台博客 qttc.net</h3>
- <p>
- 在按钮上绑定的js单击事件中‘30’代表倒计时秒数,可以在绑定时设置秒数,灵活应用。 当然,这个倒计时只是前端控制,如果需要更安全的做法应该是服务器端也做判断。</p>