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 继承实现方法
Aug 26 Javascript
Jvascript学习实践案例(开发常用)
Jun 25 Javascript
基于jquery的9行js轻松实现tab控件示例
Oct 12 Javascript
使用jQuery实现返回顶部
Jan 26 Javascript
jquery解析json格式数据的方法(对象、字符串)
Nov 24 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
js自定义trim函数实现删除两端空格功能
Feb 09 Javascript
JS求Number类型数组中最大元素方法
Apr 08 Javascript
解决eclipse中没有js代码提示的问题
Oct 10 Javascript
使用p5.js临摹动态图片
Nov 04 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 Javascript
vue大型项目之分模块运行/打包的实现
Sep 21 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
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
2016/07/20 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
php pdo操作数据库示例
2017/03/10 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
常见JS效果之图片减速度滚动实现代码
2011/12/08 Javascript
Javascript自定义排序 node运行 实例
2013/06/05 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
js图片模糊切换显示特效的方法
2015/02/17 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
浅析JavaScript动画
2015/06/10 Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
2016/05/15 Javascript
javascript对象的相关操作小结
2016/05/16 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
ES6学习之变量的两种命名方法示例
2017/07/18 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
Python爬虫获取页面所有URL链接过程详解
2020/06/04 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
授权委托书范本
2014/04/03 职场文书
员工年终考核评语
2014/12/31 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
比赛主持人开场白
2015/05/29 职场文书
公司员工奖惩制度
2015/08/04 职场文书
公司年会主持词范文!
2019/05/07 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书