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猜数字小游戏的简单实现代码
Jul 02 Javascript
基于Jquery实现万圣节快乐特效
Nov 01 Javascript
在AngularJS中使用jQuery的zTree插件的方法
Apr 21 Javascript
高效Web开发的10个jQuery代码片段
Jul 22 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 Javascript
浅谈JavaScript中的属性:如何遍历属性
Sep 14 Javascript
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
Aug 09 Javascript
如何用RxJS实现Redux Form
Dec 29 Javascript
基于vue+element实现全局loading过程详解
Jul 10 Javascript
微信小程序自定义支持图片的弹窗
Dec 21 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操作XML作为数据库的类
2010/12/19 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
在smarty模板中使用PHP函数的方法
2011/04/23 PHP
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
JS中如何设置readOnly的值
2013/12/25 Javascript
jquery+javascript编写国籍控件
2015/02/12 Javascript
Bootstrap每天必学之媒体对象
2015/11/30 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
用js读写cookie的简单方法(推荐)
2016/08/08 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
vue定义全局变量和全局方法的方法示例
2018/08/01 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
JavaScript实现世界各地时间显示
2020/09/07 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
pandas中遍历dataframe的每一个元素的实现
2019/10/23 Python
简单了解django文件下载方式
2020/02/10 Python
parser.add_argument中的action使用
2020/04/20 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
python用分数表示矩阵的方法实例
2021/01/11 Python
市场开发与营销专业求职信范文
2014/05/01 职场文书
英语专业求职信
2014/07/08 职场文书
大学四年个人总结
2015/03/03 职场文书
毕业酒会致辞
2015/07/29 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
动画《新网球王子 U-17 WORLD CUP》希腊队PV公开
2022/04/02 日漫
Docker安装MySql8并远程访问的实现
2022/07/07 Servers