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 相关文章推荐
top.location.href 没有权限 解决方法
Aug 05 Javascript
JavaScript中关于indexOf的使用方法与问题小结
Aug 05 Javascript
页面回到顶部的三种实现(锚标记,js)
Oct 01 Javascript
JS简单操作select和dropdownlist实例
Nov 26 Javascript
浅析webapp框架AngularUI的demo
Dec 21 Javascript
简介JavaScript中Boolean.toSource()方法的使用
Jun 05 Javascript
浅谈javascript中replace()方法
Nov 10 Javascript
js判断当前页面用什么浏览器打开的方法
Jan 06 Javascript
基于jquery插件编写countdown计时器
Jun 12 Javascript
JS实现全屏的四种写法
Dec 30 Javascript
在Vue组件化中利用axios处理ajax请求的使用方法
Aug 25 Javascript
利用js将ajax获取到的后台数据动态加载至网页中的方法
Aug 08 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导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
php获取网站百度快照日期的方法
2015/07/29 PHP
php获取开始与结束日期之间所有日期的方法
2016/11/29 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
javascript中使用css需要注意的地方小结
2010/09/01 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
2014/03/17 Javascript
javascript 回调函数详解
2014/11/11 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
原生js实现addclass,removeclass,toggleclasss实例
2016/11/24 Javascript
详解angularjs实现echart图表效果最简洁教程
2017/11/29 Javascript
详解React之父子组件传递和其它一些要点
2018/06/25 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
python使用itchat库实现微信机器人(好友聊天、群聊天)
2018/01/04 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
PyQt5图形界面播放音乐的实例
2019/06/17 Python
python如何使用jt400.jar包代码实例
2019/12/20 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Python requests及aiohttp速度对比代码实例
2020/07/16 Python
Python 爬虫性能相关总结
2020/08/03 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
HTML5 video 事件应用示例
2014/09/11 HTML / CSS
函授本科毕业生自我鉴定
2013/10/16 职场文书
DIY蛋糕店的创业计划书范文
2013/12/26 职场文书
马云北大演讲完整版:真心话,什么才是阿里的核心竞争力?
2014/04/04 职场文书
学校献爱心活动总结
2014/07/08 职场文书
就业协议书
2014/09/12 职场文书
银行委托书范本
2014/09/28 职场文书
自查自纠工作总结
2014/10/15 职场文书
营销与策划实训报告
2014/11/05 职场文书
武夷山导游词
2015/02/03 职场文书
商场营业员岗位职责
2015/04/14 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS