JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】

yizhihongxing

下面是关于“JS实现的倒计时恢复按钮点击功能”的完整攻略:

一、实现思路

  1. 通过JavaScript获取页面上的倒计时元素,并从元素的data-*属性中读取倒计时的时间。
  2. 开始倒计时,每秒减少一秒,并将剩余时间更新到页面上。
  3. 倒计时结束后,显示恢复按钮,并将按钮设置为可点击状态。
  4. 添加按钮的点击事件,点击按钮后重新开始倒计时。

二、实现步骤

  1. HTML结构:
<div class="countdown" data-time="60">
  <span id="time">60s</span>
  <button id="btn" disabled>恢复</button>
</div>
  1. CSS样式:
.countdown {
  display: inline-block;
  padding:10px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-size: 16px;
  line-height: 1;
}
  1. JavaScript代码:
var time = document.getElementById('time'); // 获取倒计时元素
var btn = document.getElementById('btn'); // 获取恢复按钮元素
var countTime = parseInt(time.parentNode.dataset.time) || 60; // 从data-time属性中读取倒计时的时间
var timer = null; // 计时器

// 开始倒计时
timer = setInterval(function() {
  if(countTime <= 0) { // 倒计时结束
    clearInterval(timer); // 清除计时器
    btn.removeAttribute('disabled'); // 恢复按钮设置为可点击
  } 
  time.innerHTML = countTime + 's'; // 更新剩余时间
  countTime--;
}, 1000);

// 恢复按钮被点击
btn.addEventListener('click', function() {
  btn.setAttribute('disabled', true); // 恢复按钮设置为不可点击
  countTime = parseInt(time.parentNode.dataset.time) || 60; // 重新读取倒计时时间
  time.innerHTML = countTime + 's'; // 更新剩余时间
  timer = setInterval(function() { // 重新开始倒计时
    if(countTime <= 0) { // 倒计时结束
      clearInterval(timer); // 清除计时器
      btn.removeAttribute('disabled'); // 恢复按钮设置为可点击
    }
    time.innerHTML = countTime + 's'; // 更新剩余时间
    countTime--;
  }, 1000);
});

三、示例说明

  1. 倒计时恢复协议阅读

如下示例演示了如何在协议阅读时添加倒计时,阅读过程中只有满足时间限制,才能继续往下操作。

<p>
  请在 <span class="countdown" data-time="10"><span id="time">10s</span><button id="btn" disabled>阅读完成</button></span> 内完成此协议的阅读。
</p>
<p>阅读内容……</p>

<script>
  // JavaScript代码
</script>
  1. 倒计时恢复验证码发送

如下示例演示了如何在发送验证码时添加倒计时,发送后只有在一定时间之后才能再次发送。

<p>
  <label>手机号:<input type="text"></label> 
  <label>验证码:<input type="text"></label> 
  <button id="send">发送验证码</button>
  <span class="countdown" data-time="60"><span id="time">60s</span><button id="btn" disabled>再次发送</button></span>
</p>

<script>
  // JavaScript代码
</script> 

以上是对“JS实现的倒计时恢复按钮点击功能”的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS实现的倒计时恢复按钮点击功能【可用于协议阅读倒计时】 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • js中unicode转码方法详解

    JS中Unicode转码方法详解 JavaScript中的字符串可以通过Unicode字符集来表示,其中每个字符都有对应的Unicode编码值。在一些场景下,我们需要将一些特殊字符或非ASCII字符转换成Unicode编码表示。因此,本文将详细讲解在JavaScript中实现Unicode编码和解码的方法。 Unicode编码 在JavaScript中,可以…

    JavaScript 2023年5月19日
    00
  • JavaScript中Reduce10个常用场景技巧

    JavaScript中reduce是一个非常有用的数组方法,它可以对一个数组的所有元素进行迭代,并返回一个最终的结果。reduce方法有很多应用场景,下面将介绍十个常用场景技巧。 1. 数组求和 使用reduce方法可以很方便地对数组中的数值进行求和。只需将reduce方法的初始值设置为0,每次迭代时将两个数值相加即可。 const arr = [1, 2,…

    JavaScript 2023年6月10日
    00
  • JavaScript常用基础知识强化学习

    JavaScript常用基础知识强化学习攻略 1. 前置知识 在进行JavaScript常用基础知识的强化学习之前,需要掌握以下前置知识: HTML和CSS基础知识 程序基本结构(语句、循环、条件判断等) 数据类型、变量、运算符 函数、对象、数组 2. 基础知识强化学习方法 2.1 阅读MDN文档 MDN提供了JavaScript的完整文档,包含了语言核心、…

    JavaScript 2023年6月10日
    00
  • 通过Javascript读取本地Excel文件内容的代码示例

    要通过Javascript读取本地Excel文件内容,我们可以使用以下步骤: 创建一个input元素,设置它的type属性为file,并将它添加到HTML页面中。 当用户选择Excel文件后,我们可以通过Javascript获取到该文件,可以使用FileReader对象将文件读取为二进制数据。 将二进制数据转换为Uint8Array类型的数组,并使用XLSX…

    JavaScript 2023年5月27日
    00
  • JS合并两个数组的3种方法详解

    这里是关于“JS合并两个数组的3种方法详解”的完整攻略。 标题 JS合并两个数组的3种方法详解 简介 在JavaScript中,有许多方法可以合并两个数组。在这篇文章中,我们将学习3种方法,包括使用concat()函数、使用spread操作符和使用Array.from()函数。 正文 1.使用concat()函数 concat()函数是JavaScript中…

    JavaScript 2023年5月27日
    00
  • layui的表单提交以及验证和修改弹框的实例

    下面我将为你详细讲解“layui的表单提交以及验证和修改弹框的实例”的完整攻略。 什么是layui Layui是一款前端UI框架,致力于提供易用、美观的UI组件以及丰富的应用场景支持。 lay-submit和lay-filter lay-submit: 作用是监听表单提交事件,会阻止默认的表单提交操作。我们可以通过给按钮设置 lay-submit 属性来告诉…

    JavaScript 2023年6月10日
    00
  • 自己写一个uniapp全局弹窗(APP端)

    下面是详细讲解如何自己写一个uniapp全局弹窗(APP端)的完整攻略。 1. 准备工作 在开始之前,需要先确定以下几点: 确定弹窗的样式和内容,包括弹窗的尺寸、背景色、字体等; 确定弹窗的触发方式,比如是否需要点击按钮或者触发特定事件; 确定弹窗的位置,比如是否需要固定在屏幕底部或者居中展现。 2. 实现步骤 实现全局弹窗的基本步骤如下: 在 App.vu…

    JavaScript 2023年6月11日
    00
  • JavaScript基于扩展String实现替换字符串中index处字符的方法

    要基于扩展String实现替换字符串中index处字符的方法,需要使用JavaScript原型链进行扩展。具体步骤如下: 利用Object.defineProperty()方法,为String.prototype对象添加一个名为replaceCharAtIndex的新属性。 Object.defineProperty(String.prototype, ‘r…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部