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 相关文章推荐
文本加密解密
Jun 23 Javascript
解读IE和firefox下JScript和HREF的执行顺序
Jan 12 Javascript
jQuery 学习6 操纵元素显示效果的函数
Feb 07 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
Dec 06 Javascript
Javascript加载速度慢的解决方案
Mar 11 Javascript
js中匿名函数的创建与调用方法分析
Dec 19 Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 Javascript
基于jquery实现轮播特效
Apr 22 Javascript
Angular6中使用Swiper的方法示例
Jul 09 Javascript
vue下history模式刷新后404错误解决方法
Aug 18 Javascript
详解mpvue scroll-view自动回弹bug解决方案
Oct 01 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
Aug 03 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验证信用卡卡号是否正确函数
2015/05/27 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
PHP之header函数详解
2021/03/02 PHP
用ADODB.Stream转换
2007/01/22 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
jquery仿百度经验滑动切换浏览效果
2015/04/14 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
jQuery Validate让普通按钮触发表单验证的方法
2016/12/15 Javascript
JS作用域深度解析
2016/12/29 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
Python读取mp3中ID3信息的方法
2015/03/05 Python
python中的lambda表达式用法详解
2016/06/22 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
python实现随机漫步方法和原理
2019/06/10 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
ghd法国官方网站:英国最受欢迎的美发工具品牌
2019/04/18 全球购物
梅西百货官网:Macy’s
2020/08/04 全球购物
小加工厂管理制度
2014/01/21 职场文书
公司年终奖分配方案
2014/06/16 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
交通安全横幅标语
2014/10/07 职场文书
趵突泉导游词
2015/02/03 职场文书
银行稽核岗位职责
2015/04/13 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
Python实现DBSCAN聚类算法并样例测试
2021/06/22 Python