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 相关文章推荐
js apply/call/caller/callee/bind使用方法与区别分析
Oct 28 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
Feb 14 Javascript
Javascript基础教程之break和continue语句
Jan 18 Javascript
JavaScript获取表单内所有元素值的方法
Apr 02 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
Dec 03 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
Dec 07 Javascript
树结构之JavaScript
Jan 24 Javascript
AngularJS中使用ngModal模态框实例
May 27 Javascript
详解JS数组Reduce()方法详解及高级技巧
Aug 18 Javascript
浅谈 Webpack 如何处理图片(开发、打包、优化)
May 15 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
Jul 17 Javascript
vue中watch的用法汇总
Dec 28 Vue.js
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的宝库目录--PEAR
2006/10/09 PHP
PHP脚本的10个技巧(3)
2006/10/09 PHP
PR值查询 | PageRank 查询
2006/12/20 PHP
php在linux下检测mysql同步状态的方法
2015/01/15 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
Laravel 实现Controller向blade前台模板赋值的四种方式小结
2019/10/22 PHP
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
Laydate时间组件在火狐浏览器下有多时间输入框时只能给第一个输入框赋值的解决方法
2016/08/18 Javascript
对js中回调函数的一些看法
2016/08/29 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
Vue 项目部署到服务器的问题解决方法
2017/12/05 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
python中随机函数random用法实例
2015/04/30 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
python之DataFrame实现excel合并单元格
2021/02/22 Python
对python模块中多个类的用法详解
2019/01/10 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
美国家居装饰店:Z Gallerie
2020/12/28 全球购物
大学生入党思想汇报
2014/01/14 职场文书
学生会主席事迹材料
2014/01/28 职场文书
国家助学金获奖感言
2014/01/31 职场文书
建筑专业毕业生自荐信
2014/05/25 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
2015年库房管理工作总结
2015/10/14 职场文书
解决MySQL报“too many connections“错误
2022/04/19 MySQL