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 事件参考手册
Dec 24 Javascript
JavaScript按位运算符的应用简析
Feb 04 Javascript
页面装载js及性能分析方法介绍
Mar 21 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
Jun 16 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
JavaScript仿百度图片浏览效果
Nov 23 Javascript
Express使用html模板的详细代码
Sep 18 Javascript
Node.js静态服务器的实现方法
Feb 28 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
Jul 10 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
Oct 15 Javascript
详解element-ui设置下拉选择切换必填和非必填
Jun 17 Javascript
ES6 Set结构的应用实例分析
Jun 26 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 攻击方法之谈php+mysql注射语句构造
2009/10/30 PHP
解析php中die(),exit(),return的区别
2013/06/20 PHP
linux下php上传文件注意事项
2016/06/11 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
详解PHP PDO简单教程
2019/05/28 PHP
laravel异步监控定时调度器实例详解
2019/06/21 PHP
关于Javascript模块化和命名空间管理的问题说明
2010/12/06 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
js禁止回车提交表单的示例代码
2013/12/23 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
JS/jQ实现免费获取手机验证码倒计时效果
2016/06/13 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
微信小程序左滑动显示菜单功能的实现
2018/06/14 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
js实现弹窗效果
2020/08/09 Javascript
Python中的os.path路径模块中的操作方法总结
2016/07/07 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
python绘制立方体的方法
2018/07/02 Python
python读取TXT每行,并存到LIST中的方法
2018/10/26 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
深入了解NumPy 高级索引
2020/07/24 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
教师节促销方案
2014/03/22 职场文书
体育课课后反思
2014/04/24 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
老龄工作先进事迹
2014/08/15 职场文书
社区党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
高校教师个人总结
2015/02/10 职场文书
重阳节活动主持词
2015/07/04 职场文书
Redis如何实现验证码发送 以及限制每日发送次数
2022/04/18 Redis
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers