javascript中的倒计时器,用于html中的每一行表

时间:2015-03-30 04:02:04

标签: javascript

    var count = Number(sessionStorage.getItem('count')) || 3600;

    var counter = setInterval(timer, 1000); //1000 will  run it every 1 second
    function timer() {
    count = count - 1;
    sessionStorage.setItem('count', count)
    if (count == -1) {
        clearInterval(counter);
        return;
    }

    var seconds = count % 60;
    var minutes = Math.floor(count / 60);
    var hours = Math.floor(minutes / 60);
    minutes %= 60;
    hours %= 60;

    var time_str = hours + ":h " + minutes + ":m " + seconds + ":s";
    //document.cookie = 'time_str = hours + ":h " + minutes + ":m " +     seconds + ":s"; expires=Thu, 26 March 20:47:11 UTC; path=/'

    Array.prototype.forEach.call(document.querySelectorAll('.timer'), function (el ) { el.innerHTML = time_str; });
}

以上是我倒数计时器的javascript代码。这种方法很好,但在" 0h:0m:0s"之后它不会停止。时间。它开始计数为负数。

1 个答案:

答案 0 :(得分:0)

以下是适用于我的代码的修改版本:

var count = 5;
var counter = setInterval(hockeytimer, 1000);

function hockeytimer() {
  count = count - 1;
  sessionStorage.setItem('count', count);

  if (count == -1) {
    clearInterval(counter);
    return;
  }

  var seconds = count % 60;
  var minutes = Math.floor(count / 60);
  var hours = Math.floor(minutes / 60);
  minutes %= 60;
  hours %= 60;

  if (hours === 0 && minutes === 0  && seconds === 0 ) {
    var table = document.getElementById("hockeyt");
    while (table.rows.length > 0 ) {
      table.deleteRow();
    }
  }

  var time_str = hours + ":h " + minutes + ":m " + seconds + ":s";

  var timerCells = document.querySelectorAll('.hockeytimer');

  for (var i = 0; i < timerCells.length; i++) {
    var timerCell = timerCells[i];
    timerCell.innerHTML = time_str;
  }
}

演示:http://jsbin.com/ceboqi/1/edit?html,js,output