jQuery基于扩展实现的倒计时效果


Posted in Javascript onMay 14, 2016

本文实例讲述了jQuery基于扩展实现的倒计时效果。分享给大家供大家参考,具体如下:

<div id="fnTimeCountDown" data-end="">
<span class="mini">00</span>分
<span class="sec">00</span>秒
<span class="hm">000</span>
</div>
<script type="text/javascript" src="jquery-2.1.4.min.js"></script>
<script type="text/javascript">
 $.extend($.fn,{
  fnTimeCountDown:function(d){
   this.each(function(){
    var $this = $(this);
    var o = {
     hm: $this.find(".hm"),
     sec: $this.find(".sec"),
     mini: $this.find(".mini"),
     hour: $this.find(".hour"),
     day: $this.find(".day"),
     month:$this.find(".month"),
     year: $this.find(".year")
    };
    var f = {
     haomiao: function(n){
      if(n < 10)return "00" + n.toString();
      if(n < 100)return "0" + n.toString();
      return n.toString();
     },
     zero: function(n){
      var _n = parseInt(n, 10);//解析字符串,返回整数
      if(_n > 0){
       if(_n <= 9){
        _n = "0" + _n
       }
       return String(_n);
      }else{
       return "00";
      }
     },
     dv: function(){
      //d = d || Date.UTC(2050, 0, 1); //如果未定义时间,则我们设定倒计时日期是2050年1月1日
      var _d = $this.data("end") || d;
      var now = new Date(),
       endDate = new Date(_d);
      //现在将来秒差值
      //alert(future.getTimezoneOffset());
      var dur = (endDate - now.getTime()) / 1000 , mss = endDate - now.getTime() ,pms = {
       hm:"000",
       sec: "00",
       mini: "00",
       hour: "00",
       day: "00",
       month: "00",
       year: "0"
      };
      if(mss > 0){
       pms.hm = f.haomiao(mss % 1000);
       pms.sec = f.zero(dur % 60);
       pms.mini = Math.floor((dur / 60)) > 0? f.zero(Math.floor((dur / 60)) % 60) : "00";
       pms.hour = Math.floor((dur / 3600)) > 0? f.zero(Math.floor((dur / 3600)) % 24) : "00";
       pms.day = Math.floor((dur / 86400)) > 0? f.zero(Math.floor((dur / 86400)) % 30) : "00";
       //月份,以实际平均每月秒数计算
       pms.month = Math.floor((dur / 2629744)) > 0? f.zero(Math.floor((dur / 2629744)) % 12) : "00";
       //年份,按按回归年365天5时48分46秒算
       pms.year = Math.floor((dur / 31556926)) > 0? Math.floor((dur / 31556926)) : "0";
      }else{
       pms.year=pms.month=pms.day=pms.hour=pms.mini=pms.sec="00";
       pms.hm = "000";
       //alert('结束了');
       return;
      }
      return pms;
     },
     ui: function(){
      if(o.hm){
       o.hm.html(f.dv().hm);
      }
      if(o.sec){
       o.sec.html(f.dv().sec);
      }
      if(o.mini){
       o.mini.html(f.dv().mini);
      }
      if(o.hour){
       o.hour.html(f.dv().hour);
      }
      if(o.day){
       o.day.html(f.dv().day);
      }
      if(o.month){
       o.month.html(f.dv().month);
      }
      if(o.year){
       o.year.html(f.dv().year);
      }
      setTimeout(f.ui, 1);
     }
    };
    f.ui();
   });
  }
 });
</script>
<script type="text/javascript">
 $("#fnTimeCountDown").fnTimeCountDown("2018/07/08 18:45:13");
</script>

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
IE8 兼容性问题(属性名区分大小写)
Jun 04 Javascript
jquery validator 插件增加日期比较方法
Feb 21 Javascript
如何设置iframe高度自适应在跨域情况下的可用方法
Sep 06 Javascript
jQuery使用andSelf()来包含之前的选择集
May 19 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
JavaScript实现下拉菜单的显示和隐藏
Jan 05 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
JavaScript函数表达式详解及实例
May 05 Javascript
ES5新增数组的实现方法
May 12 Javascript
Vue 中获取当前时间并实时刷新的实现代码
May 12 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
Aug 03 Javascript
JavaScript实现多球运动效果
Sep 07 Javascript
Angularjs中UI Router的使用方法
May 14 #Javascript
两种js监听滚轮事件的实现方法
May 13 #Javascript
原生js和jquery分别实现横向导航菜单效果
May 13 #Javascript
实例讲解Jquery中隐藏hide、显示show、切换toggle的用法
May 13 #Javascript
AngularJS在IE8的不支持的解决方法
May 13 #Javascript
基于jquery插件实现拖拽删除图片功能
Aug 27 #Javascript
JavaScript String 对象常用方法详解
May 13 #Javascript
You might like
PHP概述.
2006/10/09 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
PHP实现图片压缩的两则实例
2014/07/19 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
php实现随机显示图片方法汇总
2015/05/21 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
POST一个JSON格式的数据给Restful服务实例详解
2017/04/07 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
JavaScript实现星级评分
2017/01/12 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
基于JS实现网页中的选项卡(两种方法)
2017/06/16 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
vue实现图片上传到后台
2020/06/29 Javascript
[10:07]2014DOTA2国际邀请赛 实拍选手现场观战DK对阵Titan
2014/07/12 DOTA
Python中用于返回绝对值的abs()方法
2015/05/14 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
深入理解python中的atexit模块
2017/03/07 Python
python使用tkinter库实现五子棋游戏
2019/06/18 Python
Python 取numpy数组的某几行某几列方法
2019/10/24 Python
python滑块验证码的破解实现
2019/11/10 Python
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
DBA的职责都有哪些
2012/05/16 面试题
软件工程师面试题
2012/06/25 面试题
会计电算化专业毕业生自荐信
2013/12/20 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
2014医学院领导干部四风对照检查材料思想汇报
2014/09/16 职场文书
2016年企业安全生产月活动总结
2016/04/06 职场文书