倒计时效果

案例分析:

1.这个倒计时是不断变化的,因此需要定时器来自动变化(setInterval);

2.三个黑色盒子分别存放时分秒;

3.三个黑色盒子利用innerHTML放入计算的小时分钟秒数;

4.第一次执行也是间隔毫秒数,因此刚刷新页面会有空白;

5.最好采取封装函数的方式,这样可以先调用一次这个函数,防止刚开始刷新页面有空白问题。

效果展示:

代码:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6         <style>
 7             div{
 8                 margin: 200px;
 9             }
10             span{
11                 display: inline-block;
12                 width: 40px;
13                 height: 40px;
14                 background-color: black;
15                 font-size: 20px;
16                 color: white;
17                 text-align: center;
18                 line-height: 40px;
19             }
20         </style>
21     </head>
22     <body>
23         <div>
24             <span class="hour">1</span>
25             <span class="minute">2</span>
26             <span class="second">3</span>
27         </div>
28         <script>
29             //1.获取元素
30             var hour = document.querySelector('.hour');
31             var minute = document.querySelector('.minute');
32             var second = document.querySelector('.second');
33             var inputTime = +new Date('2020-5-20 24:00:00');     //返回的是用户输入时间总的毫秒数
34             countDown(); //先调用一次函数,防止第一次刷新页面有空白
35             //2.开启定时器
36             setInterval(countDown, 1000);
37 
38             function countDown(){
39                 var nowTime = +new Date();   //返回的是当前时间总的毫秒数
40                 var times = (inputTime - nowTime) / 1000;    //times是剩余时间总的秒数
41                 // var d = parseInt(times / 60 / 60 / 24);     //天
42                 // d = d < 10 ? '0' + d : d;
43                 var h = parseInt(times / 60 / 60 % 24);     //
44                 h = h < 10 ? '0' + h : h;
45                 hour.innerHTML = h;
46                 var m = parseInt(times / 60 % 60);     //
47                 m = m < 10 ? '0' + m : m;
48                 minute.innerHTML = m;
49                 var s = parseInt(times % 60);     //当前的秒
50                 s = s < 10 ? '0' + s : s;
51                 second.innerHTML = s;
52             }
53         </script>
54     </body>
55 </html>

 

posted on 2020-05-20 16:35  SailorM  阅读(223)  评论(0编辑  收藏  举报