网页中的倒计时原理

在网页中我们可以看到很多的倒计时效果,这个实现原理也很简单。

 

倒计时指的是距离未来某个时间点的时间间隔。

 

所以:剩余时间=未来时间-现在时间;

 

我们分析一下:现在的时间点是变的,未来的某个时间点是不变的,所以剩余时间是一直变化的。我们假设有一个变量t

 

Var iNow=new Date();  //现在时间

Var iNew=new Date(2015,11,18,9,0,0); //未来某个时间点


说明:创建Date时间对象参数


数字形式:new Date(2015,11,18,9,0,0)   //其中月份从0开始计算的

 

字符串形式:new Date(“december 12,2015 8:53:12”)

 

剩余时间var t=Math.floor((iNew-iNow)/1000)

 

下面分别计算天,时,分,秒

 

天:Math.floor(t/86400)

时:Math.floor(t%86400/3600)

分:Math.floor(t%86400%3600/60)

秒:Math.floor(t%60)


我们定义一个字符串用来暂时存储剩余时间

 

Var str=Math.floor(t/86400+”天”+Math.floor(t%86400/3600)+”时”

+Math.floor(t%86400%3600/60)+”分”+Math.floor(t%60)+”秒”


我们先把这个时间放在网页中:

 

Var body=document.body;

body.innerHTML=str;



现在有一个问题,这个时间是固定不变的,只有刷新一次才变一次,我们不可能做到每次都刷新页面看剩余时间,我们希望的是过一秒就变一次,这就用到了js中的定时器setinterval

结果如下:

 

<script>

window.onload=function(){

       var obody=document.body;

       var iNew = new Date(2015,11,18,15,50,40);

       var iNow=null;

       var t=0;

       var str="";

       setInterval(function(){

              iNow = new Date();

              t = Math.floor((iNew - iNow)/1000);

              str = Math.floor(t/86400)+'天'+Math.floor(t%86400/3600)+'时'+Math.floor(t%86400%3600/60)+'分'+t%60+'秒';

              obody.innerHTML=str; 

       }, 1000)

      

}

</script>


以上只是倒计时的一个简单的实现原理,当然网上还有各种各样的倒计时效果,但是万变不离其宗,只要掌握了原理,实现其他的效果才更容易上手,望我们在web前端这条道路上共勉。

 

本文转载自:迹忆客(https://www.jiyik.com)

以上是 网页中的倒计时原理 的全部内容, 来源链接: utcz.com/z/289997.html

回到顶部