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 相关文章推荐
jQuery 表单验证扩展(四)
Oct 20 Javascript
javascript控制swfObject应用介绍
Nov 29 Javascript
jQuery及JS实现循环中暂停的方法
Feb 02 Javascript
javascript数组随机排序实例分析
Jul 22 Javascript
理解js回收机制通俗易懂版
Feb 29 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
原生JS实现图片轮播效果
Dec 26 Javascript
vue 微信授权登录解决方案
Apr 10 Javascript
vue.js与后台数据交互的实例讲解
Aug 08 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
Nov 25 Javascript
JS实现轮播图效果
Jan 11 Javascript
JS函数本身的作用域实例分析
Mar 16 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里得到前天和昨天的日期的代码
2007/08/16 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
php数组和链表的区别总结
2019/09/20 PHP
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
jQuery中fadeIn、fadeOut、fadeTo的使用方法(图片显示与隐藏)
2013/05/08 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
精通JavaScript的this关键字
2020/05/28 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
基于Bootstrap的网页设计实例
2017/03/01 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
JavaScript实现网页下拉菜单效果
2020/11/20 Javascript
[02:12]Dota 2 推出全新英雄—— 电炎绝手
2019/08/23 DOTA
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
Apache如何部署django项目
2017/05/21 Python
Python3按一定数据位数格式处理bin文件的方法
2019/01/24 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
信息专业个人的自我评价
2013/12/27 职场文书
爱岗敬业演讲稿
2014/05/05 职场文书
财务整改报告范文
2014/11/05 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
Vue实现导入Excel功能步骤详解
2021/07/03 Vue.js
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript