javascript倒计时显示毫秒

时间:2011-02-02 03:44:10

标签: javascript jquery ajax countdown

我想倒计时并希望显示格式为Minutes:Seconds:Milliseconds。我使用jquery插件countdown进行了倒计时,但它只显示了Minutes:Seconds格式。 有没有办法让它成功? 非常感谢!

6 个答案:

答案 0 :(得分:2)

大家好我已经开发了一个代码供我自己使用以下代码 反击20秒

var _STOP =0;

var value=1999;

function settimer()

{
    var svalue = value.toString();

    if(svalue.length  == 3)

        svalue = '0'+svalue;
    else if(svalue.length  == 2)
        svalue = '00'+svalue;
    else if(svalue.length  == 1)
        svalue = '000'+svalue;
    else if(value == 0)
        svalue = '0000';
    document.getElementById('cn1').innerHTML = svalue[0];
    document.getElementById('cn2').innerHTML = svalue[1];
    document.getElementById('cn3').innerHTML = svalue[2];
    document.getElementById('cn4').innerHTML = svalue[3];   
    value--;

    if (_STOP==0 && value>=0) setTimeout("settimer();", 10);
}

setTimeout("settimer()", 10);

答案 1 :(得分:2)

试试这个:http://jsfiddle.net/aamir/TaHtz/76/

HTML:

<div id="timer"></div>

JS:

var el = document.getElementById('timer');
var milliSecondsTime = 10000;
var timer;


el.innerHTML = milliSecondsTime/1000;
timer = setInterval(function(){
    milliSecondsTime = milliSecondsTime - 1000;
    if(milliSecondsTime/1000 == 0) {
        clearTimeout(timer);
        el.innerHTML = 'BOOOOM';
    }
    else {
        el.innerHTML = milliSecondsTime/1000;
    }
},1000);
​

答案 2 :(得分:1)

如果你想制作自己的计时器。 阅读此前的问题 How to create a JQuery Clock / Timer

答案 3 :(得分:0)

尝试设置格式参数 - http://keith-wood.name/countdownRef.html#format

进一步阅读,这个插件不会毫秒。此时,您必须编辑实际的插件代码或找到新的插件。

答案 4 :(得分:0)

我完全赞同@Matt Ball的评论。它也可能导致浏览器崩溃。

为什么不尝试这个解决方案

jQuery 1 minute countdown with milliseconds and callback

答案 5 :(得分:0)

我是这样做的(通用计数器从N到X(X> N)):

var dynamicCounterAddNewValue = 20;
    var currentDynamicUpdater;

    function dynamicCounterForValueForControlUpdater(_updaterData) {
       _updaterData.from += dynamicCounterAddNewValue;

       if (_updaterData.from > _updaterData.to) {
          _updaterData.from = _updaterData.to;
       }

       _updaterData.c.html(_updaterData.from.toString());
       if (_updaterData.from < _updaterData.to) {
          currentDynamicUpdater = setTimeout(
             dynamicCounterForValueForControlUpdater,
             10,
             {
                c: _updaterData.c,
                from: _updaterData.from,
                to: _updaterData.to
             }
             );
       }
       else {
          clearTimeout(currentDynamicUpdater);
       }
       return;
    }

    // _c -> jQuery object (div,span)
    // _from -> starting number
    // _to -> ending number
    function dynamicCounterForValueForControl(_c, _from, _to) {
       clearTimeout(currentDynamicUpdater);
       dynamicCounterForValueForControlUpdater(
          {
             c: _c,
             from: _from,
             to: _to
          }
          );
       return;
    }

编辑:更新版本(更灵活 - N个元素的一个接一个):

(输入元素是 Array 元素,用于使它们成为动态计数)

var dynamicCounterTimeout = 10;
var currentDynamicUpdater;

function odcArray(_odca) {
   this.odca = _odca;
   return;
}

function odc(_c, _from, _to) {
   this.c = _c;         // $('#control_id')
   this.from = _from;   // e.g. N
   this.to = _to;       // e.g. M => (M >= N)
   var di = parseInt(_to / 45, 10);
   if (di < 1) {
      di = 1;
   }
   this.dynamicInc = di;
   return;
}

function dynamicCounterForValueForControlUpdater(_odca) {
   if (
      _odca.odca === null
      ||
      !_odca.odca.length
      ) {
      clearTimeout(currentDynamicUpdater);
      return;
   }

   var o = _odca.odca[0];
   o.from += o.dynamicInc;

   if (o.from > o.to) {
      o.from = o.to;
      _odca.odca.shift();  // Remove first element
   }
   o.c.html(o.from.toString());

   currentDynamicUpdater = setTimeout(
      dynamicCounterForValueForControlUpdater,
      dynamicCounterTimeout,
      _odca
      );

   return;
}

function dynamicCounterForValueForControl(_odca) {
   clearTimeout(currentDynamicUpdater);
   // SETUP all counters to default
   for (var i = 0; i < _odca.odca.length; i++) {
      _odca.odca[i].c.html(_odca.odca[i].from.toString());
   }
   dynamicCounterForValueForControlUpdater(
      _odca
      );
   return;
}