jQuery倒计时效果代码实例

快乐打工仔 分类:实例代码

倒计时效果在很多功能中都有使用,比如团购或者考试或者体育比赛等。

下面就是一个jQuery代码实现的倒计时功能,下面就做一下分析。

代码实例如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>前端教程网</title>
<style type="text/css">
*{
  font-style:normal;
  font-weight:normal;
}
.haveday{
  padding:20px;
  border:1px dashed #000;
  margin-right auto;
  margin-left:auto;
  width:300px;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
<script>
function lxfEndtime(){
  $(".lxftime").each(function(){
    var lxfday=$(this).attr("lxfday");//用来判断是否显示天数的变量
    var endtime = new Date($(this).attr("endtime")).getTime();
    //取结束日期(毫秒值)
    var nowtime = new Date().getTime();
    //今天的日期(毫秒值)
    var youtime = endtime-nowtime;//还有多久(毫秒值)
    var seconds = youtime/1000;
    var minutes = Math.floor(seconds/60);
    var hours = Math.floor(minutes/60);
    var days = Math.floor(hours/24);
    var CDay= days ;
    var CHour= hours % 24;
    var CMinute= minutes % 60;
    var CSecond= Math.floor(seconds%60);
    //"%"是取余运算,可以理解为60进一后取余数,然后只要余数。
    if(endtime<=nowtime){
      $(this).html("已过期")
      //如果结束日期小于当前日期就提示过期啦
    }
    else{
      if($(this).attr("lxfday")=="no"){
        $(this).html("<i>剩余时间:</i><span>"
        +CHour+"</span>时<span>"
        +CMinute+"</span>分<span>"
        +CSecond+"</span>秒");
        //输出没有天数的数据
      }
      else{
        $(this).html("<i>剩余时间:</i><span>"
        +days+"</span><em>天</em><span>"
        +CHour+"</span><em>时</em><span>"
        +CMinute+"</span><em>分</em><span>"
        +CSecond+"</span><em>秒</em>");
        //输出有天数的数据
      }
    }
  });
  setTimeout("lxfEndtime()",1000);
};
$(function(){
  lxfEndtime();
});
</script>
</head>
<body>
<div class="haveday">
  <h1>含有天数的倒计时</h1>
  <div class="lxftime" endtime="11/15/2018 17:24:0"></div>
  <div class="lxftime" endtime="11/8/2018 3:3:20"></div>
  <div class="lxftime" endtime="9/6/2018 6:1:0"></div>
  <div class="lxftime" endtime="6/6/2018 9:3:5"></div>
</div>
<p></p>
<div class="haveday">
  <h1>没有天数的倒计时</h1>
  <div class="lxftime" endtime="11/15/2018 17:24:0" lxfday="no"></div>
  <div class="lxftime" endtime="11/8/2018 3:3:20" lxfday="no"></div>
  <div class="lxftime" endtime="9/6/2018 6:1:0" lxfday="no"></div>
  <div class="lxftime" endtime="6/6/2018 9:3:5" lxfday="no"></div>
</div>
</body>
</html>

上面的代码实现了我们的要求,下面介绍一下它的实现过程。

一.代码注释:

(1).function lxfEndtime(){},此方法实现了计算当前时间和结束时间差的功能。(2).$(".lxftime").each(function(){}),遍历每一个class属性值为lxftime的元素。

(3).var lxfday=$(this).attr("lxfday"),是否显示倒计时的天。

(4).var endtime = new Date($(this).attr("endtime")).getTime(),获取结束时间的时间戳。

(5).var nowtime = new Date().getTime(),获取当前时间的时间戳。

(6).var youtime = endtime-nowtime,结束时间和当前时间的时间戳差距。

(7).var seconds = youtime/1000,获取相差的秒数。

(8).var minutes = Math.floor(seconds/60),获取相差的分钟数。

(9).var hours = Math.floor(minutes/60),获取相差的小时数。

(10).var days = Math.floor(hours/24),获取相差的天数。

(11).var CDay= days,将相差的天数赋值给变量。

(12).var CHour= hours % 24,相差的小时数。

(13).var CMinute= minutes % 60,相差的分钟数。

(14).var CSecond= Math.floor(seconds%60),相差的秒数。

(15).if(endtime<=nowtime){

  $(this).html("已过期")

  //如果结束日期小于当前日期就提示过期啦

},如果当前时间大于结束时间,那么就给出提示。

二.相关阅读:

(1).each()方法可以参阅jQuery each()一章节。

(2).attr()方法可以参阅jQuery attr()一章节。

(3).getTime()方法可以参阅javascript getTime()一章节。

(4).Math.floor()方法可以参阅javascript Math.floor()一章节。

(5).setTimeout()方法可以参阅setTimeout()一章节。

一线大厂高级前端编写,前端初中阶面试题,帮助初学者应聘,需要联系微信:javadudu

回复

我来回复
  • 暂无回复内容