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 typeof 用法
Dec 28 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
Jan 07 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
javascript操作select元素实例分析
Mar 27 Javascript
JavaScript设计模式经典之命令模式
Feb 24 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
利用JavaScript实现栈的数据结构示例代码
Aug 02 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
Aug 28 Javascript
JS运动特效之任意值添加运动的方法分析
Jan 24 Javascript
js自定义trim函数实现删除两端空格功能
Feb 09 Javascript
用Vue.js在浏览器中实现裁剪图像功能
Jun 18 Javascript
JS数组方法reduce的用法实例分析
Mar 03 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更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
thinkPHP5项目中实现QQ第三方登录功能
2017/10/20 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
Javascript 继承机制的实现
2009/08/12 Javascript
JavaScript Perfection kill 测试及答案
2010/03/23 Javascript
Jquery绑定事件(bind和live的区别介绍)
2013/08/23 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
AngularJS入门教程之模块化操作用法示例
2016/11/02 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
Js实现中国公民身份证号码有效性验证实例代码
2017/05/03 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
跟老齐学Python之画圈还不简单吗?
2014/09/20 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程
2016/06/07 Python
Pandas DataFrame 取一行数据会得到Series的方法
2018/11/10 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
计算机专业毕业生推荐信
2013/11/25 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
法制宣传月活动总结
2014/04/29 职场文书
责任书范本
2014/08/25 职场文书
文明礼仪倡议书
2015/04/28 职场文书
浅谈Python数学建模之数据导入
2021/06/23 Python
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS