.hide()div计时器到达0



我一直在试图使计时器到达00:00时消失,但是每次尝试某些东西都会立即隐藏Div。

这是我正在使用的代码:

$(document).ready(function(e) {
  var $worked = $("#worked");
  function update() {
    var myTime = $worked.html();
    var ss = myTime.split(":");
    var dt = new Date();
    dt.setHours(0);
    dt.setMinutes(ss[0]);
    dt.setSeconds(ss[1]);
    var dt2 = new Date(dt.valueOf() - 1000);
    var temp = dt2.toTimeString().split(" ");
    var ts = temp[0].split(":");
    $worked.html(ts[1] + ":" + ts[2]);
    setTimeout(update, 1000);
  }
  setTimeout(update, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="worked">00:10</div>

我为您创建了一个示例。在此示例中,我将计时器的间隔更改为10ms,因此您可以更快地看到结果。同样,而不是将setTimeout设置为在功能update内运行update。您可以使用setInterval。我还添加了更新功能中的检查,该检查功能是否是00:00。如果是真的,则通过调用clearInterval(timer);并运行$worked.hide()

来使间隔无效

$(document).ready(function (e) {
        var $worked = $("#worked");
        var timer = setInterval(update, 10);
        function update() {
            var myTime = $worked.html();
            var ss = myTime.split(":");
            var dt = new Date();
            dt.setHours(0);
            dt.setMinutes(ss[0]);
            dt.setSeconds(ss[1]);
            var dt2 = new Date(dt.valueOf() - 1000);
            var temp = dt2.toTimeString().split(" ");
            var ts = temp[0].split(":");
            $worked.html(ts[1]+":"+ts[2]);
            $worked.html(ts[1]+":"+ts[2]);
            if(ts[1] === '00' && ts[2] === '00') {
                clearInterval(timer);
                $worked.hide();
            }
        }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="worked">01:00</div>

这是另一种方法:)

$(document).ready(function(e) {
  var $worked = $("#timer");
  var startTime = new Date().getTime();
  var now, currentDistance;
  setInterval(function update() {
    now = new Date().getTime();
    currentDistance = 10000 - now + startTime;
    if (currentDistance > 0) {
        $worked.html(parseInt(currentDistance / 1000) + " seconds, " + (currentDistance % 1000) + " ms left!");
    } else {
        $worked.hide();
    }
  }, 1);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="timer" style="background-color: rgb(190, 190, 220); width: 200px; text-align: center"></div>

最新更新