我在哪里,倒计时从0开始并结束,直到24那倒数的想法,我想在这里24结束它的代码使用JavaScript一个基本倒计时工作:
var count=0;
var counter=setInterval(timer, 50); //1000 will run it every 1 second
function timer()
{
count=count+1;
if (count >= 24)
{
clearInterval(counter);
//counter ended, do something here
document.getElementById("countdown").innerHTML=24 ;
return;
}
//Do code for showing the number of seconds here
document.getElementById("countdown").innerHTML=count ; // watch for spelling
}
现在的事情是,如果你注意到这一点,倒计时发生得非常快,这是预期的效果。 然而,问题是这样的, 有没有办法有一个平滑的宽松型的效果,在倒计时开始慢慢地,然后通过最后阶段加速? 如何达到这样的效果?
感谢您的答复。
编辑:这是小提琴 ,在行动中看到倒计时,并获得一个更深入的了解。
使用它运行超时一次再加入额外的时间和直到你达到24再次运行超时。
var count=0;
var ms = 200;
var step = 5;
var counter=setTimeout(timer, ms); //1000 will run it every 1 second
function timer()
{
count=count+1;
if (count <= 24)
{
//Do code for showing the number of seconds here
document.getElementById("countdown").innerHTML=count ; // watch for spelling
ms = ms - step;
counter = setTimeout(timer, ms);
}
}
你需要使用的setTimeout代替的setInterval和setTimeout的另一个变量。
var count=0;
var speed = 1000;
timer();
function timer()
{
count++;
//Do code for showing the number of seconds here
document.getElementById("countdown").innerHTML=count ; // watch for spelling
if (count >= 24)
{
return;
}
speed = speed / 6 * 5; // or whatever
setTimeout(timer, speed);
}
小提琴: http://jsfiddle.net/4nnms1gz/2/
使用的setTimeout会给你你counter.Here更多的控制是一个工作例子,你可以处理你的counter.It的速度会给你的30毫秒的时间增加至70ms的每次调用time
函数
var count=0; var loop=1000; var interval; var text=document.getElementById('countdown'); var range=document.getElementById('range'); var btn=document.getElementById('btn'); var span=document.getElementById('val'); range.addEventListener('change',function(e){ span.innerHTML=range.value+' ms'; }); btn.addEventListener('click',function(e){ timer(parseInt(range.value)); }); function timer(time) { console.log(time); if (count < 24) { count=count+1; text.value=count; loop-=time; interval=setTimeout(function(){ timer(time); },loop); if(count>=24){ clearTimeout(interval); return; } } }
<input type='text' id='countdown' value='0'></br> <input type='range' id='range' max='70' min='30' value='30' >increase by:<span id='val'></span></br> <input type='button' value='start' id='btn' ></br>