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 12 Javascript
javascript实现节点(div)名称编辑
Dec 17 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
Jul 27 Javascript
js创建数组的简单方法
Jul 27 Javascript
pc加载更多功能和移动端下拉刷新加载数据
Nov 07 Javascript
node.js中使用Export和Import的方法
Sep 18 Javascript
template.js前端模板引擎使用详解
Oct 10 Javascript
从零开始搭建vue移动端项目到上线的步骤
Oct 15 Javascript
关于layui表单中按钮自动提交的解决方法
Sep 09 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
Jul 28 Javascript
微信小程序实现上传照片代码实例解析
Aug 04 Javascript
使用vue3重构拼图游戏的实现示例
Jan 25 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
推荐文章系统(一)
2006/10/09 PHP
PHP中使用smarty生成静态文件的例子
2014/04/24 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
JQuery中$.each 和$(selector).each()的区别详解
2015/03/13 Javascript
浅谈Nodejs观察者模式
2015/10/13 NodeJs
jQuery Easyui实现左右布局
2016/01/26 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
IScroll5实现下拉刷新上拉加载的功能实例
2017/08/11 Javascript
JavaScript实现选项卡效果的分析及步骤
2019/04/16 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
JavaScript交换变量常用4种方法解析
2020/09/02 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
Python中使用装饰器时需要注意的一些问题
2015/05/11 Python
python通过文件头判断文件类型
2015/10/30 Python
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
python实现简单猜单词游戏
2020/12/24 Python
Python将QQ聊天记录生成词云的示例代码
2021/02/10 Python
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
python实现会员管理系统
2022/03/18 Python