javascript - 使用 HTML 和 CSS 在 JS 中的倒计时时钟

标签 javascript html css

我想显示倒数计时器和进度条。我有这个 javascript 代码,但我无法将 css、html 和进度条代码添加到我的 javascript 代码中。

<script>
var hoursleft =  3;
var minutesleft = 0; 
var secondsleft =  0; 
var finishedtext = "Countdown finished!";
var end1;
if(localStorage.getItem("end1")) {
end1 = new Date(localStorage.getItem("end1"));
} else {
end1 = new Date();
end1.setMinutes(end1.getMinutes()+minutesleft);
end1.setSeconds(end1.getSeconds()+secondsleft);}
var counter = function () {
var now = new Date();
var diff = end1 - now;
diff = new Date(diff);
	var milliseconds = parseInt((diff%1000)/100)
    var sec = parseInt((diff/1000)%60)
    var mins = parseInt((diff/(1000*60))%60)
    var hours = parseInt((diff/(1000*60*60))%24);
if (hours < 10) { 
    hours = "0" + hours;} 
if (mins < 10) {
    mins = "0" + mins;}
if (sec < 10) { 
    sec = "0" + sec;}     
if(now >= end1) {     
    clearTimeout(interval);
    localStorage.setItem("end", null);
     localStorage.removeItem("end1");
     localStorage.clear();
    document.getElementById('divCounter').innerHTML = finishedtext;
     if(confirm("TIME UP!"))
     window.location.href= "result.php";
} else {
    var value = hours+":" +mins + ":" + sec;
    localStorage.setItem("end1", end1);
    document.getElementById('divCounter').innerHTML = value;}}
var interval = setInterval(counter, 1000);
</script>

谁能帮我用这个倒数计时器添加 css 和进度条,如图所示?

最佳答案

也许我没有完全理解你的问题。但这里有一些我会想到的想法。

  • 也许您的代码的 html 部分在将其复制到您的帖子中时丢失了。

  • 我假设您了解 Basics about adding a script to html code.

  • 我根据你的代码做了一个 super 简单的例子:

    <html>
      <body>
        <progress id="progressBar" value="22" max="100"></progress>
        <div id="divCounter"></div>
      </body>
    </html>
    
    <script>
    var hoursleft =  0;
    var minutesleft = 5;
    var secondsleft =  0;
    var finishedtext = "Countdown finished!";
    var end1;
    var progressBar = document.getElementById('progressBar')
    if(localStorage.getItem("end1")) {
      end1 = new Date(localStorage.getItem("end1"));
    } else {
      end1 = new Date();
      end1.setHours(end1.getHours()+hoursleft); // Why is this line missing?
      end1.setMinutes(end1.getMinutes()+minutesleft);
      end1.setSeconds(end1.getSeconds()+secondsleft);
    }
    progressBar.max = end1 - new Date();
    
    
    var counter = function () {
      var now = new Date();
      var diff = end1 - now;
      diff = new Date(diff);
      var milliseconds = parseInt((diff%1000)/100)
      var sec = parseInt((diff/1000)%60)
      var mins = parseInt((diff/(1000*60))%60)
      var hours = parseInt((diff/(1000*60*60))%24);
    
      if (hours < 10) {
          hours = "0" + hours;
        }
      if (mins < 10) {
          mins = "0" + mins;
        }
      if (sec < 10) {
          sec = "0" + sec;}
      if(now >= end1) {
        clearTimeout(interval);
        localStorage.setItem("end", null);
        localStorage.removeItem("end1");
        localStorage.clear();
        document.getElementById('divCounter').innerHTML = finishedtext;
        if(confirm("TIME UP!")) window.location.href= "result.php";
      } else {
          progressBar.value = progressBar.max - (end1-now);
          var value = hours+":" +mins + ":" + sec;
          localStorage.setItem("end1", end1);
          document.getElementById('divCounter').innerHTML = value;
      }
    }
    var interval = setInterval(counter, 1000);
    </script>
    

希望对您有所帮助。不要犹豫,让您的问题更清楚。

关于javascript - 使用 HTML 和 CSS 在 JS 中的倒计时时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53226297/

相关文章:

javascript - 单击表格单元格时,如何让 jquery 版本的tinyMCE 在弹出窗口中打开多个文本区域?

html - 如何将副标题放在标题下方

javascript - 按钮输入上的 CSS 取消 jQuery 中的 prop disabled 属性

javascript - 访问一个 Controller 的 ng-hide 值以在全局 Controller 中操作另一个 Controller 的 ng-style

javascript - 样式化输入框自动完成

javascript - 单击自定义 HTML 按钮时无法关闭 Sweet Alert 2 模式

css - img 后 div 内的垂直间隙

javascript - 意外的 JavaScript 日期结果

javascript - 在 anchor 标记内居中对齐跨度

html - bootstrap 3.2 同一行上的两列