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高级程序设计(第3版)学习笔记6 初识js对象
Oct 11 Javascript
JavaScript实现生成GUID(全局统一标识符)
Sep 05 Javascript
JavaScript 学习笔记之基础中的基础
Jan 13 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
May 19 Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 Javascript
学习使用jquery iScroll.js移动端滚动条插件
Mar 24 Javascript
JavaScript中Number对象的toFixed() 方法详解
Sep 02 Javascript
在vue中实现点击选择框阻止弹出层消失的方法
Sep 15 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
Dec 11 Javascript
js实现随机8位验证码
Jul 24 Javascript
原生JS与CSS实现软件卸载对话框功能
Dec 05 Javascript
Postman环境变量全局变量使用方法详解
Aug 13 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
PHP的FTP学习(二)
2006/10/09 PHP
PHP随机生成信用卡卡号的方法
2015/03/23 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
使用JQUERY进行后台页面布局控制DIV实现左右式
2014/01/07 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
jquery 多个radio的click事件实例
2016/12/03 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
JS表单数据验证的正则表达式(常用)
2017/02/18 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
ECharts地图绘制和钻取简易接口详解
2019/07/12 Javascript
node.js使用yargs处理命令行参数操作示例
2020/02/11 Javascript
Python实现的tab文件操作类分享
2014/11/20 Python
asyncio 的 coroutine对象 与 Future对象使用指南
2016/09/11 Python
python 3利用BeautifulSoup抓取div标签的方法示例
2017/05/28 Python
python微信公众号之关注公众号自动回复
2018/10/25 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
世界上最大的隐形眼镜商店:1-800 Contacts
2018/11/03 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
空指针到底是什么
2012/08/07 面试题
户籍证明的格式
2014/01/13 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
银行员工职业规划范文
2014/01/21 职场文书
优秀护士演讲稿
2014/04/30 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
2014年劳动部工作总结
2014/12/11 职场文书