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如何设置在iframe框架中指定div不显示
Dec 04 Javascript
超级简单的jquery操作表格方法
Dec 15 Javascript
简述JavaScript提交表单的方式 (Using JavaScript Submit Form)
Mar 18 Javascript
利用原生JS自动生成文章标题树的实例
Aug 22 Javascript
bootstrap table分页模板和获取表中的ID方法
Jan 10 Javascript
浅谈react.js 之 批量添加与删除功能
Apr 17 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
Oct 27 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
Vue项目实现换肤功能的一种方案分析
Aug 28 Javascript
微信小程序HTTP接口请求封装代码实例
Sep 05 Javascript
解决vue-cli 打包后自定义动画未执行的问题
Nov 12 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
Jul 17 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
2014/02/18 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
2017/08/01 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
jQuery实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
2010/03/21 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
javascript与Python快速排序实例对比
2015/08/10 Javascript
详解JavaScript正则表达式之RegExp对象
2015/12/13 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
JavaScript实现替换字符串中最后一个字符的方法
2017/03/07 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
layui select动态添加option的实例
2018/03/07 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
python类定义的讲解
2013/11/01 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
python实现祝福弹窗效果
2019/04/07 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
2020/12/07 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
CSS3实现瀑布流布局与无限加载图片相册的实例代码
2016/12/22 HTML / CSS
Farah官方网站:男士服装及配件
2019/11/01 全球购物
String这个类型的class为何定义成final?
2012/11/13 面试题
园林施工员岗位职责
2013/12/11 职场文书
护士实习求职信
2014/06/22 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
公务员政审材料
2014/12/23 职场文书
入党积极分子培养联系人意见
2015/08/12 职场文书
师德师风心得体会(2016精选篇)
2016/01/12 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
redis lua限流算法实现示例
2022/07/15 Redis