Moment.js实现多个同时倒计时


Posted in Javascript onAugust 26, 2019

本文实例为大家分享了Moment.js实现多个同时倒计时的具体代码,供大家参考,具体内容如下

第一步:

首先项目中需要引入moment.js。安装方法如下:

bower install moment --save # bower
npm install moment --save  # npm

安装成功之后引入到项目中:

import moment from 'moment'

第二步:

在mounted中添加一个方法:

//定义一个立即执行的函数
      (function () {
        var Ticts=function Ticts() {
          this.ticts = {};
        };
        Ticts.prototype.createTicts=function(id, dealline) {
          var ticts=this;
          var time=moment(dealline).diff(moment());
          var _ticts=this.ticts[id] = {
            dealine: dealline
            , id: id
            , time: time
            , interval: setInterval(function () {
              var t = null;
              var d = null;
              var h = null;
              var m = null;
              var s = null;
              //js默认时间戳为毫秒,需要转化成秒
              t = _ticts.time / 1000;
              d = Math.floor(t / (24 * 3600));
              h = Math.floor((t - 24 * 3600 * d) / 3600);
              m = Math.floor((t - 24 * 3600 * d - h * 3600) / 60);
              s = Math.floor((t - 24 * 3600 * d - h * 3600 - m * 60));
              //这里可以做一个格式化的处理,甚至做毫秒级的页面渲染,基于DOM操作,太多个倒计时一起会导致页面性能下降
              document.getElementById(id).innerHTML = d + '天' + h + '小时' + m + '分钟' + s + '秒';
              _ticts.time -= 1000;
              if (_ticts.time < 0)
                ticts.deleteTicts(id);//判断是否到期,到期后自动删除定时器
            }, 1000)
          }
        };
        Ticts.prototype.deleteTicts = function(id) {
          clearInterval(this.ticts[id].interval);//清楚定时器的方法,需要定时器的指针作为参数传入clearInterval
          delete this.ticts[id];//通过delete的方法删除对象中的属性
        };
        //新建一个ticts对象,放到window全局函数中,那么在html页面是(或者其他js文件)可以访问该对象
        window.Ticts=new Ticts();
      })();
 
      Ticts.createTicts("time1","2019-06-07 00:00:00");
      Ticts.createTicts("time2","2019-09-13 00:00:00");
      Ticts.createTicts("time3","2019-10-01 00:00:00");

第三步:

添加标签展示倒计时内容

<div><span>距离端午假期还有:</span><span id="time1"></span></div>
<br>
<div><span>距离中秋假期还有:</span><span id="time2"></span></div>
<br>
<div><span>距离国庆假期还有:</span><span id="time3"></span></div>

最终效果:

Moment.js实现多个同时倒计时

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Dom 是什么的详细说明
Oct 25 Javascript
JavaScript flash复制库类 Zero Clipboard
Jan 17 Javascript
js对象数组按属性快速排序
Jan 31 Javascript
Juery解决tablesorter中文排序和字符范围的方法
May 06 Javascript
在JavaScript中使用NaN值的方法
Jun 05 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
Aug 17 Javascript
canvas绘制环形进度条
Feb 23 Javascript
js根据需要计算数组中重复出现某个元素的个数
Jan 18 Javascript
浅谈React Native 传参的几种方式(小结)
May 21 Javascript
Centos7 安装Node.js10以上版本的方法步骤
Oct 15 Javascript
JavaScript异步操作的几种常见处理方法实例总结
May 11 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
Mar 01 Javascript
vue获取验证码倒计时组件
Aug 26 #Javascript
seajs和requirejs模块化简单案例分析
Aug 26 #Javascript
JavaScript实现身份证验证代码实例
Aug 26 #Javascript
基于vue、react实现倒计时效果
Aug 26 #Javascript
tweenjs缓动算法的使用实例分析
Aug 26 #Javascript
JS实现利用闭包判断Dom元素和滚动条的方向示例
Aug 26 #Javascript
JS实现提示效果弹出及延迟隐藏的功能
Aug 26 #Javascript
You might like
定义php常量的详解
2013/06/09 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
PHP实现会员账号单唯一登录的方法分析
2019/03/07 PHP
PHP实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
PHP与Web页面的交互示例详解二
2020/08/04 PHP
javascript使用eval或者new Function进行语法检查
2010/10/16 Javascript
推荐6款基于jQuery实现图片效果插件
2014/12/07 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
jquery+正则实现统一的表单验证
2015/09/20 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
Node.js编写CLI的实例详解
2017/05/17 Javascript
jQuery滑动到底部加载下一页数据的实例代码
2017/05/22 jQuery
two.js之实现动画效果示例
2017/11/06 Javascript
关于express与koa的使用对比详解
2018/01/25 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
Preload基础使用方法详解
2020/02/03 Javascript
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
使用BeautifulSoup爬虫程序获取百度搜索结果的标题和url示例
2014/01/19 Python
详解python eval函数的妙用
2017/11/16 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
Django框架模板用法入门教程
2019/11/04 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
医院护士求职自荐信格式
2013/09/21 职场文书
财务会计专业求职信范文
2013/12/31 职场文书
优秀食品类广告词
2014/03/19 职场文书
鼋头渚导游词
2015/02/05 职场文书
2015年前台个人工作总结
2015/04/03 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
为什么MySQL选择Repeatable Read作为默认隔离级别
2021/07/26 MySQL
python如何将mat文件转为png
2022/07/15 Python
Win11如何查看显卡型号 Win11查看显卡型号的方法
2022/08/14 数码科技