前端开发:在vue中实现按钮倒计时功能

简介: 在vue中开发中,关于计时器的使用也是比较常见的知识点,如基于移动端的短信60秒倒计时按钮、阅读协议40秒等实际需求,很常见的需求也不复杂,主要是有些细节需要注意。那么本篇博文就来分享一下关于vue中实现倒计时功能的方法,方便查阅使用,如有问题请指正。

前言

在vue中开发中,关于计时器的使用也是比较常见的知识点,如基于移动端的短信60秒倒计时按钮、阅读协议40秒等实际需求,很常见的需求也不复杂,主要是有些细节需要注意。那么本篇博文就来分享一下关于vue中实现倒计时功能的方法,方便查阅使用,如有问题请指正。

使用场景

在前端开发中基于移动端的短信验证码发送60s倒计时使用,用户协议阅读30s倒计时提示等等。

核心原理

主要要处理的是倒计时按钮提示的数字以及倒计时结束之后的提示文字,以及计时器来进行倒计时使用,以及标签层面和js中按钮触发的点击事件处理。

示例实现代码

本篇博文以用户协议阅读提示30s倒计时提示来讲解,具体的核心代码如下所示。

1、标签里面的代码

<!-- 提示框-->
    <van-dialog
      class="instruction-dialog" v-model="instructionShow"
      title=“用户协议须知"   confirm-button-color="#ee0a24"
      :showConfirmButton="false" >
      <div class="instruction-dialog-content">
    协议提示内容
      </div>

      <div class="dialog-button-bg">
        <div  v-if="totalTime > 0"
          style="margin-top: 10px; width: 50%;margin-bottom: 10px;display: inline-block;
            height: 34px;vertical-align: middle;line-height: 34px;background: rgb(143, 142, 142);
            color: white; border-radius: 4px;font-size: 14px;">
          {{ confirmContent }}
        </div>

        <van-button
          v-else
          type="info"
          style=" width: 50%;height: 34px;margin-bottom: 10px; margin-top: 10px; border-radius: 4px; "
          @click="closeClick1"
          >关闭</van-button
        >
      </div>
    </van-dialog>

2、js中的代码

data() {
        return {
            confirmContent: "确认", //倒计时之后按钮提示文字
            totalTime: 30, //倒计时30s
        }
 },
 mounted() {
    this.verificationCode(); //进入当前界面就需要调用倒计时方法
}
//…此处省略无关代码
 methods: {
    //倒计时方法
    verificationCode() {
      this.confirmContent = this.totalTime + "s后可关闭";
      let clock = window.setInterval(() => {
        this.totalTime--;
        this.confirmContent = this.totalTime + "s后可关闭";
        if (this.totalTime <= 0) {
          clearInterval(clock);
        }
      }, 1000);
    },
    //提示框关闭按钮
    closeClick1() {
      this.instructionShow = false;
    },
}

3、css样式里面的代码

<style scoped>
/**弹框 */
.instruction-dialog {
  margin-top: 10px;
  margin-bottom: 15px;
  height: 80%;
}
.instruction-dialog-content {
  color: #323232;
  padding: 15px;
  font-size: 11px;
}

.dialog-button-bg {
  background: white;
  text-align: center;
  position: fixed;
  left: 0px;
  right: 0px;
  bottom: 0px;
}
</style>

基于前端的手机验证码倒计时的实现和上面的用户协议阅读提示30s倒计时提示的示例实现类似,这里就不再做示例介绍。

最后

通过上面介绍的在vue中实现倒计时功能,在Vue.js开发中遇到相关使用场景就游刃有余了,这也是在开发过程中必用的功能,尤其是对于初中级开发者来说,更应该掌握这些情况的使用,这里不再赘述。以上就是本章的全部内容,欢迎关注三掌柜的微信公众号“程序猿by三掌柜”,三掌柜的新浪微博“三掌柜666”,欢迎关注!

相关文章
|
2天前
|
JSON JavaScript 前端开发
vue的 blob文件下载文件时,后端自定义异常,并返回json错误提示信息,前端捕获信息并展示给用户
vue的 blob文件下载文件时,后端自定义异常,并返回json错误提示信息,前端捕获信息并展示给用户
|
2天前
|
JSON JavaScript 前端开发
vue前端运行时出现RangeError: Maximum call stack size exceeded
vue前端运行时出现RangeError: Maximum call stack size exceeded
11 4
|
3天前
|
JavaScript 前端开发
vue前端展示【1】
vue前端展示【1】
7 1
|
4天前
|
JavaScript
vue3表格编辑(数据回显)和删除功能实现
vue3表格编辑(数据回显)和删除功能实现
9 1
|
4天前
|
存储 JavaScript 前端开发
使用vue实现一个添加和编辑的功能
使用vue实现一个添加和编辑的功能
10 1
|
10天前
|
JavaScript 前端开发
【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
【5月更文挑战第2天】【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
|
11天前
|
JSON JavaScript Java
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
22 0
|
12天前
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
|
13天前
|
JSON JavaScript 前端开发
前端框架vue的样式操作,以及vue提供的属性功能应用实战
前端框架vue的样式操作,以及vue提供的属性功能应用实战
|
9月前
|
Web App开发 前端开发 JavaScript
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
前端学习笔记202307学习笔记第五十七天-模拟面试笔记react-fiber解决了什么问题
98 0