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 相关文章推荐
javascript 极速 隐藏/显示万行表格列只需 60毫秒
Mar 28 Javascript
jquery 弹出层注册页面等(asp.net后台)
Jun 17 Javascript
js模拟hashtable的简单实例
Mar 06 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
Mar 26 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
Jul 12 Javascript
JS键盘版计算器的制作方法
Dec 03 Javascript
ES6正则表达式的一些新功能总结
May 09 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 jQuery
IE8中jQuery.load()加载页面不显示的原因
Nov 15 jQuery
详细教你微信公众号正文页SVG交互开发技巧
Jul 25 Javascript
wx-charts 微信小程序图表插件的具体使用
Aug 18 Javascript
layui表格 返回的数据状态异常的解决方法
Sep 10 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安装问题
2006/10/09 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
PHP判断json格式是否正确的实现代码
2017/09/20 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
解析javascript 数组以及json元素的添加删除
2013/06/26 Javascript
原生javascript和jquery判断浏览器版本等信息
2013/07/04 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
2015/08/06 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
微信小程序跳转到其他网页(外部链接)的实现方法
2019/09/20 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
python正则匹配查询港澳通行证办理进度示例分享
2013/12/27 Python
在Python的循环体中使用else语句的方法
2015/03/30 Python
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
Python基于pygame实现的font游戏字体(附源码)
2015/11/11 Python
基于Python开发chrome插件的方法分析
2018/07/07 Python
Selenium鼠标与键盘事件常用操作方法示例
2018/08/13 Python
Python中py文件转换成exe可执行文件的方法
2019/06/14 Python
Python Django 命名空间模式的实现
2019/08/09 Python
Python 最强编辑器详细使用指南(PyCharm )
2019/09/16 Python
Python循环实现n的全排列功能
2019/09/16 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
Python实现扫码工具的示例代码
2020/10/09 Python
MoviePy简介及Python视频剪辑自动化
2020/12/18 Python
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
用HTML5实现网站在windows8中贴靠的方法
2013/04/21 HTML / CSS
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
意大利和国际最佳时尚品牌:Drestige
2019/12/28 全球购物
Linux机考试题
2015/07/17 面试题
销售职业生涯规划范文
2014/03/14 职场文书
幼儿园清明节活动总结
2014/07/04 职场文书
健康状况证明模板
2014/10/23 职场文书
MySQL REVOKE实现删除用户权限
2021/06/18 MySQL