vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)


Posted in Javascript onMarch 30, 2017

我发现好多倒计时的插件,刷新都会变成从头再来,于是自己用vue2.0写了一个,测试通过,直接上代码

如下是组件代码:

<template>
  <span :endTime="endTime" :callback="callback" :endText="endText">
    <slot>
      {{content}}
    </slot>
  </span>
</template>
<script>
  export default {
    data(){
      return {
      content: '',
      }
    },
    props:{
      endTime:{
        type: String,
        default :''
      },
      endText:{
        type : String,
        default:'已结束'
      },
      callback : {
        type : Function,
        default :''
      }
    },
    mounted () {
     this.countdowm(this.endTime)
    },
    methods: {
      countdowm(timestamp){
      let self = this;
      let timer = setInterval(function(){
        let nowTime = new Date();
        let endTime = new Date(timestamp * 1000);
        let t = endTime.getTime() - nowTime.getTime();
        if(t>0){
          let day = Math.floor(t/86400000);
          let hour=Math.floor((t/3600000)%24);
          let min=Math.floor((t/60000)%60);
          let sec=Math.floor((t/1000)%60);
          hour = hour < 10 ? "0" + hour : hour;
          min = min < 10 ? "0" + min : min;
          sec = sec < 10 ? "0" + sec : sec;
          let format = '';
          if(day > 0){
            format = `${day}天${hour}小时${min}分${sec}秒`;
          } 
          if(day <= 0 && hour > 0 ){
            format = `${hour}小时${min}分${sec}秒`; 
          }
          if(day <= 0 && hour <= 0){
            format =`${min}分${sec}秒`;
          }
          self.content = format;
          }else{
           clearInterval(timer);
           self.content = self.endText;
           self._callback();
          }
         },1000);
        },
        _callback(){
        if(this.callback && this.callback instanceof Function){
           this.callback(...this);
         }
      }
    }
  }
</script>

下面是调用代码:

<count-down endTime="1490761620" :callback="callback" endText="已经结束了"></count-down>

ednTime 是时间结束之后的时间戳  callback是结束之后的回调  endText是结束之后的文字显示!

以上所述是小编给大家介绍的vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
一个javascript图片阅览组件
Nov 09 Javascript
JavaScript的继承的封装介绍
Oct 15 Javascript
使用POST方式弹出窗口的两种方法示例介绍
Jan 29 Javascript
jQuery中nextUntil()方法用法实例
Jan 07 Javascript
JS继承用法实例分析
Feb 05 Javascript
js实现选中页面文字将其分享到新浪微博
Nov 05 Javascript
js检测iframe是否加载完成的方法
Nov 26 Javascript
jQuery简单创建节点的方法
Sep 09 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
Gulp实现静态网页模块化的方法详解
Jan 09 Javascript
js常用方法、检查是否有特殊字符串、倒序截取字符串操作完整示例
Jan 26 Javascript
基于js实现的图片拖拽排序源码实例
Nov 04 Javascript
JavaScript mixin实现多继承的方法详解
Mar 30 #Javascript
Angular.JS中的指令引用template与指令当做属性详解
Mar 30 #Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 #jQuery
jQuery实现Select下拉列表进行状态选择功能
Mar 30 #jQuery
借助node实战JSONP跨域实例
Mar 30 #Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
Mar 30 #Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
Mar 30 #Javascript
You might like
Win9x/ME下Apache+PHP安装配置
2006/10/09 PHP
php上传图片存入数据库示例分享
2014/03/11 PHP
CodeIgniter输出中文乱码的两种解决办法
2014/06/12 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
2015/05/08 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
2017/07/21 PHP
JTrackBar水平拖动效果
2007/07/15 Javascript
JavaScript iframe的相互操作浅析
2009/10/14 Javascript
基于JQuery的日期联动实现代码
2011/02/24 Javascript
通过js动态操作table(新增,删除相关列信息)
2012/05/23 Javascript
图片Slider 带左右按钮的js示例
2013/08/30 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
推荐一个封装好的getElementsByClassName方法
2014/12/02 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
全面解析Python的While循环语句的使用方法
2015/10/13 Python
python使用arcpy.mapping模块批量出图
2017/03/06 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
numpy中的高维数组转置实例
2018/04/17 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
2020/05/25 Python
基于Keras的格式化输出Loss实现方式
2020/06/17 Python
pyqt5实现井字棋的示例代码
2020/12/07 Python
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
家佳咖啡店创业计划书
2013/12/27 职场文书
酒店仓管员岗位职责
2014/04/28 职场文书
安全生产计划书
2014/05/04 职场文书
房屋出售授权委托书
2014/10/12 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python