迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 >

网页中的倒计时原理

作者:嫣然 最近更新:2022/11/13 浏览次数:

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

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

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

我们分析一下:现在的时间点是变的,未来的某个时间点是不变的,所以剩余时间是一直变化的。我们假设有一个变量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前端这条道路上共勉。
 

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Vue - An In-Depth Guide to Lifecycle Hooks

发布时间:2025/02/21 浏览次数:117 分类:Vue

Vue has many lifecycle hooks, and it can be confusing to understand the meaning or purpose of each one. In this article, we will explain the function of each lifecycle hook and how to use them.

gulp学习之察言观色watch函数

发布时间:2017/04/15 浏览次数:1215 分类:WEB前端

gulp.watch函数是用来监听文件的变化,当文件发生变化以后,可以通过回调函数或者指定的任务执行相应的内容。

gulp学习之你来我往 src和dest函数

发布时间:2017/04/13 浏览次数:4481 分类:WEB前端

gulp无疑是我接触过的最简单易用的。其配置参数简单,并且学习起来也很容易。本章介绍其两个函数src和dest。

Sweetalert详细介绍

发布时间:2017/01/10 浏览次数:6311 分类:WEB前端

Sweetalert是一款前端用的提示框插件,它提供了炫彩的形式,使我们的网页效果更加丰富。

简单7步让你成为一名优秀的Web开发人员

发布时间:2016/03/03 浏览次数:523 分类:观点与感想

你想成为一名Web开发人员,有一个问题,在技术行业还没有经验。你可能上了很多课程并且也写了很多个人项目,但是简历上经验一栏却始终和你没有什么关系。转型到一个新的领域并

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便