刷新页面时,如何使我的倒数计时器不从头开始

问题描述 投票:-1回答:1

我从this repository得到一个倒计时代码,我做了一些更改,我想让倒计时从一开始我不刷新页面,我的Js代码是:

var timeleft =5400;

var startTime = 0;
var currentTime = 0;

function convertSeconds(s) {
    var decimal = (s/3600) - Math.floor((s/3600))
    var h = floor(s/3600);
    var min = floor(decimal * 60) ;
    var sec = s % 60;
    return nf(h, 2) + ':' + nf(min, 2) + ':' + nf(sec, 2);
}

function setup() {
    noCanvas();
    startTime = millis();

    var timer = select('#timer');
    timer.html(convertSeconds(timeleft - currentTime));

    var interval = setInterval(timeIt, 1000);

    function timeIt() {
        currentTime = floor((millis() - startTime) / 1000);
        timer.html(convertSeconds(timeleft - currentTime));
        if (currentTime == timeleft) {
            clearInterval(interval);
        }
    }
}

我的HTML代码:

<html>
<head>
    <meta charset="UTF-8">
    <script language="javascript" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/p5.js"></script>
    <script language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.dom.js"></script>
    <script language="javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.1/addons/p5.sound.js"></script>
    <script language="javascript" type="text/javascript" src="chrono.js"></script>
</head>
<body>
    <p id="timer"></p>
</body>
</html>
javascript html countdown countdowntimer
1个回答
1
投票

您可以将当前计数器值存储到本地存储(如果使用html 5,则为cookie或其他选项),并在加载页面时读取它的值并根据该值启动计时器。

安德鲁建议每次间隔开始存储时存储时间戳。然后在加载时,通过按存储的时间戳减去当前时间戳来获得增量

© www.soinside.com 2019 - 2024. All rights reserved.