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 相关文章推荐
一个页面元素appendchild追加到另一个页面元素的问题
Jan 27 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
Sep 24 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
Jul 28 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
Vue.js实战之组件的进阶
Apr 04 Javascript
javascript 开发之网页兼容各种浏览器
Sep 28 Javascript
Vue2 SSR渲染根据不同页面修改 meta
Nov 20 Javascript
JavaScript实现飞舞的泡泡效果
Feb 07 Javascript
vue 重塑数组之修改数组指定index的值操作
Aug 09 Javascript
使用Vant完成通知栏Notify的提示操作
Nov 11 Javascript
three.js中多线程的使用及性能测试详解
Jan 07 Javascript
Node实现搜索框进行模糊查询
Jun 28 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数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
PHP实现简单实用的分页类代码
2016/04/08 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
php关联数组与索引数组及其显示方法
2018/03/12 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
2021/03/09 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
jquery实现excel导出的方法
2013/04/04 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
js Canvas绘制圆形时钟教程
2017/02/06 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
使用Webpack提升Vue.js应用程序的4种方法(翻译)
2019/10/09 Javascript
js实现搜索提示框效果
2020/09/05 Javascript
[00:17]游戏风云独家报道:DD赛后说出数字秘密 吓死你们啊!
2014/07/13 DOTA
Python中的jquery PyQuery库使用小结
2014/05/13 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
Python实现简单的代理服务器
2015/07/25 Python
Linux CentOS7下安装python3 的方法
2018/01/21 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
Python日志logging模块功能与用法详解
2020/04/09 Python
Python+PyQt5实现灭霸响指功能
2020/05/25 Python
如何理解python对象
2020/06/21 Python
美国在线珠宝商店:SZUL
2017/02/11 全球购物
歼十出击观后感
2015/06/11 职场文书