javascript обратный отсчет с отображением миллисекунд - PullRequest
0 голосов
/ 02 февраля 2011

Я хочу сделать обратный отсчет и показать формат в формате Минуты: Секунды: Миллисекунды.Я сделал обратный отсчет с помощью плагина jquery countdown , но он показывает только формат Minutes: Seconds.Есть ли способ сделать это правильно?Большое спасибо!

Ответы [ 6 ]

2 голосов
/ 11 сентября 2012

Попробуйте: 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 голосов
/ 14 июля 2011

Привет, ребята. Я разработал код для себя, чтобы использовать следующий счетчик кода в течение 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 голос
/ 02 февраля 2011

Если вы хотите сделать свой таймер.прочитайте этот предыдущий вопрос
Как создать JQuery Clock / Timer

0 голосов
/ 13 декабря 2012

Я сделал это так (общий счетчик от 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 элементов один за другим ):

(входной элемент Массив элементов для их динамического счета)

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;
}
0 голосов
/ 02 февраля 2011

Я полностью согласен с комментарием @Matt Ball. Это также может привести к сбою браузера.

Почему бы вам не попробовать это решение вместо

jQuery 1 минутный обратный отсчет с миллисекундами и обратным вызовом

0 голосов
/ 02 февраля 2011

Попробуйте установить параметр формата - http://keith -wood.name / countdownRef.html # format

При дальнейшем чтении этот плагин не выполняет миллисекунд.На этом этапе вам нужно либо отредактировать фактический код плагина, либо найти новый плагин.

...