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 相关文章推荐
js jquery ajax的几种用法总结(及优缺点介绍)
Jan 28 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
Mar 22 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
Aug 09 Javascript
三种带箭头提示框总结实例
Jun 14 Javascript
Three.js学习之网格
Aug 10 Javascript
教你快速搭建Node.Js服务器的方法教程
Mar 30 Javascript
详解动画插件wow.js的使用方法
Sep 13 Javascript
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
NW.js 简介与使用方法
Feb 01 Javascript
Vue源码探究之状态初始化
Nov 14 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
Sep 02 Javascript
JS精确判断数据类型代码实例
Dec 18 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
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
FusionCharts图表显示双Y轴双(多)曲线
2012/11/22 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
浅谈目前可以使用ES10的5个新特性
2019/06/25 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
2019/09/10 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
[06:37]2014DOTA2国际邀请赛 昔日王者渴望重回巅峰
2014/07/12 DOTA
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
深入解析Python中的上下文管理器
2016/06/28 Python
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
django_orm查询性能优化方法
2018/08/20 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
PyQt5+requests实现车票查询工具
2019/01/21 Python
Python数据类型之List列表实例详解
2019/05/08 Python
python set内置函数的具体使用
2019/07/02 Python
解决Python3.8运行tornado项目报NotImplementedError错误
2020/09/02 Python
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
转预备党员政审材料
2014/02/06 职场文书
《猴子种树》教学反思
2014/02/14 职场文书
物流管理专业自荐信
2014/06/23 职场文书
校庆标语集锦
2014/06/25 职场文书
班级学习雷锋活动总结
2014/07/04 职场文书
单位工作证明
2014/10/07 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
唐山大地震观后感
2015/06/05 职场文书
mongodb的安装和开机自启动详细讲解
2021/08/02 MongoDB
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android
css布局巧妙技巧之css三角示例的运用
2022/03/16 HTML / CSS
windows系统搭建WEB服务器详细教程
2022/08/05 Servers