2011-02-02 143 views
0

我想倒計時,並希望顯示格式爲分鐘:秒:毫秒。我用jquery插件countdown倒計時,但它只顯示分鐘:秒的格式。 有什麼方法可以使它正確嗎? 非常感謝!用倒計時顯示毫秒的javascript

+1

如果你想顯示倒計時,更新_every單millisecond_,你將開始阻礙瀏覽器的性能。瀏覽器通常不會很快運行`setTimeout` /`setInterval`。但是,嘿 - [請看你自己](http://jsfiddle.net/mattball/q6tQT/)。 – 2011-02-02 04:25:36

+0

你救我很多謝謝! – 2011-02-02 05:21:49

回答

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); 
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); 
​ 
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個元素一個接一個):

(input ele換貨是使其動態計數元素的數組

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; 
}