栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

vue实现列表倒计时

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vue实现列表倒计时

vue列表实现实实时倒计时 ,通过setTimeout和vue数据和页面双向绑定渲染实现

上代码: 


export default {
  data() {
    return {
      listDao:[
        {
          time:86400,//秒
        },{
           time:8400,//秒
        }
      ]
    }
  },
  methods:{
     //倒计时方法
     //index列表内的index
     //key倒计时秒的键名
     //显示时倒计时的键名(这个需要自己定义)
     getDaoTime(index,key,key1){
      if(this.listDao.length){
        if(!this.listDao[index].nowTime){
          this.$set(this.listDao[index],'nowTime',new Date().getTime())
        }
        if(!this.listDao[index][key]){
           this.$set(this.listDao[index],key1,'--')
        }else{
          let time=this.listDao[index][key]-1
          if(time>0){
             setTimeout(()=>{
                if(new Date().getTime()-this.listDao[index].nowTime>=1000){
                  this.$set(this.listDao[index],key,time)
                  this.$set(this.listDao[index],key1,this.dayCha(time))
                  this.$set(this.listDao[index],'nowTime',new Date().getTime())
                }
            },1000)
          }else{
            this.$set(this.listDao[index],key1,'--')
            this.$set(this.listDao[index],'nowTime',new Date().getTime())
          }
        }
      }
      return this.listDao[index][key1]
    },
    // 计算时间差
    dayCha(value,geshi='天-小时-分-秒',type='string'){
        let geshiArray=geshi.split('-')
        var chaTime=value;
        var day=parseInt(chaTime/86400)
        var yu=chaTime % 86400
        var hour=parseInt(yu/3600)
        var yuH=yu % 3600
        var min=parseInt(yuH/60)
        var yuM=yuH%60
        var sec=yuM
        // console.log(value,day,hour,min,sec)
        if(type=='string'){
            let str=''
            if(day>0)str+=Vue.prototype.twoString(day)+geshiArray[0]
            if(hour>0)str+=Vue.prototype.twoString(hour)+geshiArray[1]
            if(min>=0)str+=Vue.prototype.twoString(min)+geshiArray[2]
            if(sec>=0)str+=Vue.prototype.twoString(sec)+geshiArray[3]
            if(day<=0 && hour<=0 && min<=0 && sec<=0){
                str=''
            }
            if(str==''){
                str='--'
            }
            return str
        }else{
            return {day:day,hour:hour,minute:min,second:sec}
        }
        
    }
  }
}

效果:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/913664.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号