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 相关文章推荐
js截取中英文字符串、标点符号无乱码示例解读
Apr 17 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
Sep 29 Javascript
JavaScript转换二进制编码为ASCII码的方法
Apr 16 Javascript
详解node单线程实现高并发原理与node异步I/O
Sep 21 Javascript
Angular表格神器ui-grid应用详解
Sep 29 Javascript
seajs实现强制刷新本地缓存的方法分析
Oct 16 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
Oct 24 Javascript
vue2导航根据路由传值,而改变导航内容的实例
Nov 10 Javascript
微信小程序如何获取用户手机号
Jan 26 Javascript
vue移动端实现红包雨效果
Jun 23 Javascript
webpack 代码分离优化快速指北
May 18 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
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
操作Oracle的php类
2006/10/09 PHP
用PHP制作静态网站的模板框架(四)
2006/10/09 PHP
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
PHP中防止SQL注入实现代码
2011/02/19 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
php异常处理捕获错误整理
2019/09/23 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
JavaScript 对Cookie 操作的封装小结
2009/12/31 Javascript
使用js对select动态添加和删除OPTION示例代码
2013/08/12 Javascript
js post提交调用方法
2014/02/12 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
jQuery删除一个元素后淡出效果展示删除过程的方法
2015/03/18 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
巧用canvas
2017/01/21 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
vuex实现购物车功能
2020/06/28 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
给Python初学者的一些编程技巧
2015/04/03 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
python正则表达式实例代码
2020/03/03 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
python selenium xpath定位操作
2020/09/01 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
纯CSS3实现手风琴风格菜单具体步骤
2013/05/06 HTML / CSS
Nike比利时官网:Nike.com (BE)
2019/02/07 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
班组长竞聘书
2014/03/31 职场文书
人事局接收函
2015/01/30 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
2015年教师学期工作总结
2015/04/30 职场文书