如何在时间用完时显示最后5秒?

时间:2011-08-10 09:27:48

标签: javascript timeout

您好我正在使用Javascript设置超时来运行某个功能。

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

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

是否能够使用存储在变量中的值显示某些内容?

由于

5 个答案:

答案 0 :(得分: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 :(得分:2)

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

答案 2 :(得分:1)

我会使用两次超时。

第一个时间减去5秒,它调用一个具有第二个超时(5秒)的功能,这将显示计时器。

答案 3 :(得分: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);

答案 4 :(得分: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);
}