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中将具有数字属性名的对象转换为数组
Mar 06 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
JavaScript面向对象之Prototypes和继承
Jul 12 Javascript
用js实现控件的隐藏及style.visibility的使用
Jun 14 Javascript
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
jQuery检测返回值的数据类型
Jul 13 Javascript
javascript精确统计网站访问量实例代码
Dec 19 Javascript
js时间控件只显示年月
Jan 08 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
Feb 26 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
Jan 22 Javascript
node.js微信小程序配置消息推送的实现
Feb 13 Javascript
Vue实现验证码功能
Dec 03 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中转义mysql语句的实现代码
2011/06/24 PHP
Yii核心组件AssetManager原理分析
2014/12/02 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
详解JS函数重载
2014/12/04 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
javascript控制台详解
2015/06/25 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
javascript实现圣旨卷轴展开效果(代码分享)
2017/03/23 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
vue集成百度UEditor富文本编辑器使用教程
2018/09/21 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
2020/07/18 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
python实现复制整个目录的方法
2015/05/12 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
pycharm远程开发项目的实现步骤
2019/01/20 Python
Python3内置模块之base64编解码方法详解
2019/07/13 Python
关于tf.nn.dynamic_rnn返回值详解
2020/01/20 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
校园活动策划书范文
2014/01/10 职场文书
寄语十八大感言
2014/02/07 职场文书
读书小明星事迹材料
2014/05/03 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
教师反腐倡廉演讲稿
2014/09/03 职场文书
村党的群众路线教育实践活动总结材料
2014/10/31 职场文书
《游戏公平》教学反思
2016/02/20 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
Django使用channels + websocket打造在线聊天室
2021/05/20 Python