Mam ten timer odliczający JavaScript z wbudowaną funkcją opóźnienia. Muszę go zmienić, aby być zegarem zliczania za pomocą tego samego rodzaju funkcji opóźnienia. Ja wiedziałem, jak prawdopodobnie opublikować tutaj pytanie, ponieważ nie wydaje się to łatwo akceptować. Niech sprawdź, czy to działa ...

<script type="text/javascript">
  function pad(num, size) {
    var s = num+"";
    while (s.length < size) 
      s = "0" + s;
    return s;
  }

  function initCountdown(){
    setTimeout(function() {
      current_wait++;

      if(current_wait <= waits.length) {
        var countdowns = document.getElementsByClassName('countdown');
        for(var i = 0; i < countdowns.length; i++) {
          var number = parseInt(countdowns[i].innerHTML);
          number--;

          countdowns[i].innerHTML = pad(number, 2);
        }
        initCountdown();
      }
    }, waits[current_wait] * 1000);
  }

  var initial_number = 7;
  var waits          = [4, 24, 55]; //ADD HERE AS MANY SECONDS AS YOU DESIRE.
  var current_wait   = 0;

  var countdowns = document.getElementsByClassName('countdown');

  for(var i = 0; i < countdowns.length; i++){               
    countdowns[i].innerHTML = pad(initial_number, 2);
  }

  initCountdown();
</script>
0
Nina 26 luty 2019, 04:55

2 odpowiedzi

Najlepsza odpowiedź

Jeśli chcesz zmienić swój kod, aby policzyć w górę, wszystko, co musisz zrobić, jest ustawić initial_number do wartości startowej (np. 1) i kod number-- do number++

Dobrym przykładem prostego timera liczenia można znaleźć w Najprostszym możliwym językiem odliczania JavaScript? .

function pad(num, size) {
  var s = num + "";
  while (s.length < size) s = "0" + s;
  return s;
}

function initCountdown() {
  setTimeout(function() {
    current_wait++;

    if (current_wait <= waits.length) {
      var countdowns = document.getElementsByClassName('countdown');

      for (var i = 0; i < countdowns.length; i++) {
        var number = parseInt(countdowns[i].innerHTML);
        number++;

        countdowns[i].innerHTML = pad(number, 2);
      }

      initCountdown();
    }
  }, waits[current_wait] * 1000);
}

var initial_number = 1;
var waits = [4, 24, 55]; //ADD HERE AS MANY SECONDS AS YOU DESIRE.
var current_wait = 0;

var countdowns = document.getElementsByClassName('countdown');

for (var i = 0; i < countdowns.length; i++) {
  countdowns[i].innerHTML = pad(initial_number, 2);
}

initCountdown();
<div class='countdown'></div>
0
rovyko 26 luty 2019, 02:20
function pad(num, size) {
  var s = num + "";
  while (s.length < size) {
    s = "0" + s;
  }

  return s;
}

function createCountdown(initialTime, finalTime) {
  var currentTime = initialTime;

  return setInterval(function() {
    var countdowns = document.getElementById("countdown");
    if (currentTime >= finalTime) {
        countdowns.innerHTML = pad(currentTime--, 2);
    }
  }, 1000);
}

var countdown = createCountdown(30, 0);

// Execute this to stop the countdown at anytime
// clearInterval(countdown);
<div id="countdown"></div>
0
Kevin Pastor 26 luty 2019, 02:24