2011-08-10 31 views
2

嗨,我正在使用Javascript设置超时运行某些功能。如何在计时耗尽时显示最后5秒钟?

如何在接近结束时显示超时的最后10秒?

var a = setTimeout('someFunction()', 10000); 

它能够使用它存储到变量中的值显示某些内容吗?

谢谢

回答

4

我已经为您创建一个小的演示,

http://jsfiddle.net/praveen_prasad/DYaan/1/

<div id="target" style="display:none"> 
    target 
</div> 


var target, 
    allotedTimeForWork=100 /*you can change this*/ 
    ; 
var handler = setTimeout(function(){ 
     if(!target) 
     { 
      target=document.getElementById('target'); 
     } 
    target.style.display="block"; 
    startTicker(); 
}, allotedTimeForWork); 

function startTicker() 
{ 
    var counter=10; 
    var tickerHandler= window.setInterval(function(){ 
      if(counter>0) 
      { 
       //cache target 
       target.innerHTML="you have "+counter +" seconds left"; 
       counter--; 
      } 
     else 
     { 
      target.innerHTML="time over"; 
      clearInterval(tickerHandler); 
     } 
    },1000);   
} 
1

我会使用两个超时。

第一个时间减去5秒,它调用第二个超时(5秒)的函数,它将显示计时器。

2

无法直接获取超时的剩余时间。 您可以尝试每秒创建多个超时,或者在超时启动时存储另一个变量。

1

到这里看看:http://jsfiddle.net/VCAnm/

HTML:

<span id="aaa">10</span> 

的JavaScript:

setInterval(function() { 
    var elem = document.getElementById('aaa'); 
    elem.innerHTML = elem.innerHTML - 1; 
}, 1000); 
1

组2个定时器一个为超时,另一个用于警告

var warn_time = 5000; 
var function_name = 'someFunction()'; 

var a = setTimeout('warnFunction(function_name, warn_time)', 10000 - warn_time); 

function warnFunction(function_name, time) { 
    alert('only ' + time + ' seconds left'); //use a div or whatever to display 
    var b = setTimeout(function_name, time); 
}