vue实现点击按钮倒计时

本文实例为大家分享了vue实现点击按钮倒计时的具体代码,供大家参考,具体内容如下

实现效果:

1.点击开始按钮启动计时

2.点击重置按钮计时恢复到00:00:00

3.点击暂停按钮暂停计时

Vue代码:

<template>
  <div>
    <div class="timeContainer">{{ time }}</div>
    <a-button style="margin-right: 20px" type="primary" @click="start"
      >开始</a-button
    >
    <a-button style="margin-right: 20px" type="primary" @click="reset"
      >重置</a-button
    >
    <a-button type="primary" @click="end">暂停</a-button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      flag: null,
      hour: 0,
      minute: 0,
      second: 0,
      time: "00:00:00",
    };
  },
  methods: {
    //开始计时
    start() {
      this.flag = setInterval(() => {
        this.second = this.second + 1;
        if (this.second >= 60) {
          this.second = 0;
          this.minute = this.minute + 1;
        }

        if (this.minute >= 60) {
          this.minute = 0;
          this.hour = this.hour + 1;
        }
        this.time =
          this.complZero(this.hour) +
          ":" +
          this.complZero(this.minute) +
          ":" +
          this.complZero(this.second);
      }, 1000);
    },
    //重新计时
    reset() {
      window.clearInterval(this.flag);
      this.hour = 0;
      this.minute = 0;
      this.second = 0;
      this.time = "00:00:00";
    },
    //暂停计时
    end() {
      this.flag = clearInterval(this.flag);
    },
    //补零
    complZero(n) {
      return n < 10 ? "0" + n : "" + n;
    },
  },
};
</script>
<style>
.timeContainer {
  font-size: 40px;
  margin-bottom: 10px;
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Vue写一个简单的倒计时按钮功能

    在项目开发里,我们经常会遇到发送验证码.点击了之后有60秒倒计时的按钮,很常见却也很简单,但是在写这个按钮的时候有个别地方还要注意下,今天写出来,如有问题欢迎指正! 完成的效果如下: 为了更快显示出效果,我把时间设成了5秒.按钮在点击之后会出现倒计时,同时按钮变为不可点击状态,样式也发生变化,鼠标悬浮上的样子也会发生变化. 接下来我们用代码来实现: <button class="button" @click="countDown"> {{content}

  • vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)

    我发现好多倒计时的插件,刷新都会变成从头再来,于是自己用vue2.0写了一个,测试通过,直接上代码 如下是组件代码: <template> <span :endTime="endTime" :callback="callback" :endText="endText"> <slot> {{content}} </slot> </span> </template> <sc

  • Vue验证码60秒倒计时功能简单实例代码

    template <template> <div class='login'> <div class="loginHeader"> <input type="tel" class="loginBtn border-bottom" placeholder="请输入手机号" /> <input type="tel" class="codeBtn&q

  • vue设计一个倒计时秒杀的组件详解

    简介: 倒计时秒杀组件在电商网站中层出不穷  不过思路万变不离其踪,我自己根据其他资料设计了一个vue版的 核心思路: 1.时间不能是本地客户端的时间  必须是服务器的时间这里用一个settimeout代替 以为时间必须统一 2.开始时间,结束时间通过父组件传入,当服务器时间在这个开始时间和结束时间的范围内  参加活动按钮可以点击,并且参加过活动以后不能再参加, 3.在组件创建的时候 同步得到现在时间服务时间差,并且在这里边设置定时器,每秒都做判断看秒杀是否开始和结束, 4.在更新时间的函数中是

  • vue实现验证码倒计时按钮

    本文实例为大家分享了vue实现验证码倒计时按钮的具体代码,供大家参考,具体内容如下 1.点击"发送验证码"按钮后进行逻辑判断: ▶️ 如果邮箱已输入且格式正确:按钮变为"已发送" ,此时为不可点击状态 并开始120s倒计时: ▶️ 如果邮箱未输入或格式不正确:显示错误的提示信息. 2.120s倒计时结束后按钮变为"重新发送验证码" . html: <div v-bind:class="{ 'text_email': isActiv

  • 简单实现vue验证码60秒倒计时功能

    本文实例为大家分享了vue验证码倒计时60秒的具体代码,供大家参考,具体内容如下 html <span v-show="show" @click="getCode">获取验证码</span> <span v-show="!show" class="count">{{count}} s</span> js data(){ return { show: true, count: ''

  • vue实现时间倒计时功能

    本文实例为大家分享了vue实现时间倒计时功能的具体代码,供大家参考,具体内容如下 需求: 做一个剩余支付时间倒计时的效果 效果图: 代码: <template> <div>剩余支付时间:{{count}}</div> </template> <script> export default { data() { return { count: '', //倒计时 seconds: 864000 // 10天的秒数 } }, mounted() {

  • vue中多个倒计时实现代码实例

    下面给出一个效果图,我今天要说的就是实现下图这种多个倒计时 很多时候我们做只有一个倒计时的情况比较多,比较简单只需要一个定时器setInterval,算出来赋赋值就好, 但是需要多个倒计时的时候我们就要考虑把倒计时封装成通用的方法了 拿我自己的vue项目举个例 <!-- template --> <div v-for="(item,index) in list" :key="index" class="act_item">

  • vue实现验证码按钮倒计时功能

    本人最近开始尝试学习vue.js.想使用vue写一个小例子,就选择做验证码按钮倒计时功能. 上网上搜了一下,也把他们的代码试了一下,自己出了很多问题.所以,需要写一篇基础入门的文章,避免后面人采坑. 这是按照网上写的HTML页面 <div class="register-pannel" id ="register-pannel"> <div class="register-l" align="center"&

  • vue实现商城秒杀倒计时功能

    vue实现商城秒杀倒计时功能,效果图如下所示: template代码 <div> <div class="component-wrapper" id="flash-sale"> <div class="sale-header"> <div class="countdown-zone"> <div class="countdown-prefix">限

随机推荐