zoukankan      html  css  js  c++  java
  • 【jquery】简单的倒计时效果

    前天做了一个活动项目,其中有一块需要做倒计时的效果,由于需求比较简单,所以也就没用网上各种倒计时的插件。今天抽空整理出来,分享给大家。

    html 代码如下:

    <!DOCTYPE HTML>
    <html lang="en-US">
    <head>
        <meta charset="UTF-8"/>
        <title>倒计时效果</title>
        <link rel="stylesheet" type="text/css" href="css/base.css" media="all"/>
        <style type="text/css">
        #countDown{font-size:48px;line-height:10;text-align:center;}
        </style>
    </head>
    <body>
        <div id="countDown"></div>
    </body>
    </html>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script type="text/javascript">
    function countDown(years,months,days,hours,minutes){
        var dateFinal = new Date(years,months,days,hours,minutes);    //设置倒计时到达时间
        var dateNow = new Date();    //获取系统当前时间
        var dateSub = dateFinal - dateNow;    //计算差值,单位毫秒
        var day = hour = minute = second = dayBase = hourBase = minuteBase = secondBase = 0;    //初始化各个数值
        var timeHtml = '';
        timeHtml += '距离' + years + '' + toDouble(months + 1) + '' + toDouble(days) + '' + toDouble(hours) + '' + toDouble(minutes) + '分还剩下';
        dayBase = 24 * 60 * 60 * 1000;    //计算天数的基数,单位毫秒。1天等于24*60*60*1000毫秒
        hourBase = 60 * 60 * 1000;    //计算小时的基数,单位毫秒。1小时等于60*60*1000毫秒
        minuteBase = 60 * 1000;    //计算分钟的基数,单位毫秒。1分钟等于60*1000毫秒
        secondBase = 1000;    //计算秒钟的基数,单位毫秒。1秒钟等于1000毫秒
        day = Math.floor(dateSub / dayBase);    //计算天数,并取下限值。如 5.9天 = 5天
        hour = Math.floor(dateSub % dayBase / hourBase);    //计算小时,并取下限值。如 20.59小时 = 20小时
        minute = Math.floor(dateSub % dayBase % hourBase / minuteBase);    //计算分钟,并取下限值。如 20.59分钟 = 20分钟
        second = Math.floor(dateSub % dayBase % hourBase % minuteBase / secondBase);    //计算秒钟,并取下限值。如 20.59秒 = 20秒
        //当天数小于等于0时,就不用显示
        if(day <= 0){
            timeHtml += toDouble(hour) + '' + toDouble(minute) + '' + toDouble(second) + '';
        }else{
            timeHtml += day + '' + toDouble(hour) + '' + toDouble(minute) + '' + toDouble(second) + '';
        }
        $('#countDown').html(timeHtml);
    }
    //当小时,分钟和秒钟小于 10 的时候会显示为个位数,比较难看,需要在前面加 0。
    function toDouble(num){
        if(num < 10){
            return '0'+ num;
        }else{
            return '' + num;
        }
    }
    $(function(){
        setInterval(function(){
            countDown(2013,4,1,10,0);
        },1000);
    });
    </script>

    PS:

    1、以上是本人通过所学的 jquery 知识,随意写的一些效果。

    2、在 javascript 中月份的编号是从 0 开始的,即 4 表示为 5 月份。

    3、该效果是依据系统时间来计算的,并不是按照服务器时间来计算。

  • 相关阅读:
    一个SQL语句实现的统计功能
    VS2005中的全角BUG(C#代码)[转]
    Observer Pattern(观察者模式)及其在C#中的实现
    我觉得VS2003中最差的地方
    上班了,有点困:(
    GPRS
    今天是郁闷的一天
    今天上午给公司老总演示了SharePoint项目的产品雏形
    介绍一下SharePoint
    SharePoint Service里面的东东真让人头疼
  • 原文地址:https://www.cnblogs.com/yjzhu/p/3016718.html
Copyright © 2011-2022 走看看