簡體   English   中英

重置並重新啟動JavaScript倒數計時(循環)

[英]Reset and restart javascript countdown (loop)

我有一個基於date對象的純JavaScript倒計時,但我一切正常,只是我希望倒計時能夠繼續運行。

JSFiddle示例

//the countdown part

var d = new Date();
var theDate = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
var newTime = new Date(Date.parse(d) + secs * 1000);
//var end = new Date('02/08/2016 10:00:00');
var end = newTime;
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
if (timer) clearInterval(timer);

function showRemaining() {

  var now = new Date();
  var distance = end - now;
  if (distance < 0) {
    clearInterval(timer);
    document.getElementById('countdown').innerHTML = 'this is the callback from here should reset and starts again';
    return;
  }
  var days = Math.floor(distance / _day);
  var hours = Math.floor((distance % _day) / _hour);
  var minutes = Math.floor((distance % _hour) / _minute);
  var seconds = Math.floor((distance % _minute) / _second);

  document.getElementById('countdown').innerHTML = days + 'days ';
  document.getElementById('countdown').innerHTML += hours + 'hrs ';
  document.getElementById('countdown').innerHTML += minutes + 'mins ';
  document.getElementById('countdown').innerHTML += seconds + 'secs';

}

timer = setInterval(showRemaining, 1000);

if (distance < 0)分支中,您只需要刪除clearInterval並重置end變量。

像這樣:

if (distance < 0) {
  d = new Date();
  theDate = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
  newTime = new Date(Date.parse(d) + secs * 1000);
  end = newTime;
  return;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM