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 相关文章推荐
URL编码转换,escape() encodeURI() encodeURIComponent()
Dec 27 Javascript
通过 Dom 方法提高 innerHTML 性能
Mar 26 Javascript
通过JavaScript使Div居中并随网页大小改变而改变
Jun 24 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
Jul 10 Javascript
深入理解JavaScript中的对象
Jun 04 Javascript
AngularJS实现全选反选功能
Dec 08 Javascript
详解webpack+gulp实现自动构建部署
Jun 29 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
Aug 20 Javascript
记录一次开发微信网页分享的步骤
May 07 Javascript
使用localStorage替代cookie做本地存储
Sep 25 Javascript
对vuex中getters计算过滤操作详解
Nov 06 Javascript
Vue项目接入Paypal实现示例详解
Jun 04 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中多维数组按指定value排序的实现代码
2014/08/19 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
PHP与jquery实时显示网站在线人数实例详解
2016/12/02 PHP
Js动态创建div
2008/09/25 Javascript
JAVASCRIPT IE 与 FF中兼容问题小结
2009/02/18 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
python中去空格函数的用法
2014/08/21 Python
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
python连接字符串的方法小结
2015/07/13 Python
用Python写一个无界面的2048小游戏
2016/05/24 Python
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
tensorflow实现从.ckpt文件中读取任意变量
2020/05/26 Python
Python定义一个Actor任务
2020/07/29 Python
如何解决python多种版本冲突问题
2020/10/13 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
计算机应用毕业生自荐信
2013/10/23 职场文书
计算机毕业生自荐信
2014/06/12 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
自我评价优缺点范文
2015/03/11 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
队名及霸气口号大全
2015/12/25 职场文书
公司中层管理培训心得体会
2016/01/11 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL