实现加定时器的vue弹出框

21 篇文章 0 订阅

客户需求,要求在点击弹出框的时候出现一个30倒计时,而vant组件不能够满足我们的这个需求,这个时候怎么办哪。我们只能手写一个弹出框咯!!!!

废话少说,上代码


   //点击此按钮显示弹出框
    <span class="btn-text"   @click="getWelfare">奖品领取</span>
  //弹出框
    <van-popup v-model="showMsg">
          <section class="goods-container" >
          <section class="qr-code" id="qrcode"></section>
          <p class="prize-name">福利详情</p>
          <div class="tip">您已领取福利,请前往【个人中心-中奖记录】中领取奖品。</div>
        </section>
        <div><section class="close"  id="btn" value="确定"  @click="settime">确定&nbsp;&nbsp;<span v-show="second" class="count">{{ count }} s</span></section></div>
        
      </van-popup>

我们还需要在data里面给弹出框的默认值为false,给一会要用到的定时器赋值给一个变量让他不使用的时候给清除掉timer: null

showMsg:false,
timer: null,

在方法里面写一个定时器

settime(){
  this.second=true
  const TIME_COUNT = 30;
      if (!this.timer) {
        this.count = TIME_COUNT;
        this.show = false;
        this.timer = setInterval(() => {
          if (this.count > 0 && this.count <= TIME_COUNT) {
            this.count--;
            if(this.count==0){
              this.showMsg=false
            }
          } else {
            this.show = true;
            clearInterval(this.timer);
            this.timer = null;
          }
        }, 1000);
      }
},

完了之后在点击按钮的时候,满足一定的逻辑判断让他显示就好了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值