网页中的倒计时原理
在网页中我们可以看到很多的倒计时效果,这个实现原理也很简单。
倒计时指的是距离未来某个时间点的时间间隔。
所以:剩余时间=未来时间-现在时间;
我们分析一下:现在的时间点是变的,未来的某个时间点是不变的,所以剩余时间是一直变化的。我们假设有一个变量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前端这条道路上共勉。
相关文章
gulp学习之察言观色watch函数
发布时间:2017/04/15 浏览次数:1126 分类:WEB前端
-
gulp.watch函数是用来监听文件的变化,当文件发生变化以后,可以通过回调函数或者指定的任务执行相应的内容。
Gulp学习之委以重任task函数做了什么事情
发布时间:2017/04/14 浏览次数:995 分类:WEB前端
-
gulp.task函数用来定义一个gulp要执行的任务,该函数有三个参数name、deps和fn。其具体的使用方式和注意事项使我们本章的重点内容。
gulp学习之你来我往 src和dest函数
发布时间:2017/04/13 浏览次数:4467 分类:WEB前端
-
gulp无疑是我接触过的最简单易用的。其配置参数简单,并且学习起来也很容易。本章介绍其两个函数src和dest。
gulp+browserify编译es6方法及常见错误解决
发布时间:2017/01/11 浏览次数:2250 分类:WEB前端
-
本篇介绍如何使用gulp和browserify来编译打包es6代码,并且提供一种对其过程中常见的一种错误的解决方案。
简单7步让你成为一名优秀的Web开发人员
发布时间:2016/03/03 浏览次数:517 分类:观点与感想
-
你想成为一名Web开发人员,有一个问题,在技术行业还没有经验。你可能上了很多课程并且也写了很多个人项目,但是简历上经验一栏却始终和你没有什么关系。转型到一个新的领域并