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

下面是关于“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日

相关文章

  • 使用javascript实现有效时间的控制,并显示将要过期的时间

    使用JavaScript实现有效时间的控制可以采用以下步骤: 1.创建一个Date对象来获取当前时间。如下所示: const now = new Date(); 2.通过加上有效时间的毫秒数(比如一小时的有效时间为3600000毫秒)来计算出存储到cookie或localstorage中的过期时间。如下所示: const expirationTime = n…

    JavaScript 2023年5月27日
    00
  • javascript使用正则控制input输入框允许输入的值方法大全

    JavaScript使用正则控制input输入框允许输入的值方法大全 在开发前端网页时,有时我们需要对输入框的输入内容进行限制,只允许输入特定类型的数据,这时就可以使用JavaScript的正则表达式来控制。 以下列出了几种常见的限制方式和相应的正则表达式: 限制只允许输入数字 <input type="text" onkeyup=…

    JavaScript 2023年6月11日
    00
  • 红米手机抢购的js代码

    针对红米手机抢购的 JS 代码攻略,我们需要先了解一下抢购的基本原理。 在红米手机抢购页面中,通过 JavaScript 设置定时器定时获取服务器时间,当服务器时间和系统时间一致时,弹出抢购按钮,此时用户点击按钮进行下一步操作。因此,我们需要找到获取服务器时间的 JS 代码,并通过模拟调用该代码来提前获取到服务器时间从而成功抢购。 以下是详细步骤: 步骤一:…

    JavaScript 2023年6月11日
    00
  • JS异步文件上传(兼容IE8+)

    首先,让我们来了解一下什么是异步文件上传。 异步文件上传是指在上传过程中,不会阻塞页面的其他操作,而是在后台进行上传操作。这种方式提高了用户体验,同时也提升了网站性能。 现在,我们来了解一下如何使用 JavaScript 实现异步文件上传。 实现步骤 为 input 元素绑定 change 事件,获取用户选择的文件。 使用 FormData 对象封装文件数据…

    JavaScript 2023年5月27日
    00
  • asp.net+ajax的Post请求实例

    下面是关于“ASP.NET+Ajax的post请求实例”的攻略。 什么是Ajax? Ajax(Asynchronous JavaScript and XML)是一种用于创建 Web 应用的技术。它可以让浏览器不重新加载整个页面的情况下,动态地更新页面上的一部分内容。使用 Ajax 技术可以使网页更加流畅和响应。 什么是ASP.NET? ASP.NET 是一种…

    JavaScript 2023年6月11日
    00
  • JavaScript对象参数的引用传递

    JavaScript中对象作为参数时是引用传递,这意味着在函数中操作传递进来的对象参数时,会直接修改原对象,而不是复制一份进行操作。下面是完整的攻略。 什么是引用传递? 引用传递是JavaScript中一种复杂数据类型(如对象、数组等)作为函数参数时的传递方式。传递的不是数据本身,而是对该数据的内存地址的引用。在函数内部可以通过这个地址对传递进来的数据进行修…

    JavaScript 2023年6月10日
    00
  • jQuery高级编程之js对象、json与ajax用法实例分析

    jQuery高级编程之js对象、JSON与Ajax用法实例分析 简介 在本文中,我们将讨论jQuery高级编程中的JavaScript对象、JSON数据格式和Ajax用法。JavaScript对象是一个键-值对数据结构的集合,它可以存储和访问对象属性和方法。JSON是一种轻量级数据交换格式,用于在前端和后端之间传输数据。Ajax是一种技术,用于创建异步Web…

    JavaScript 2023年5月27日
    00
  • 微信小程序项目实践之九宫格实现及item跳转功能

    以下是《微信小程序项目实践之九宫格实现及item跳转功能》的完整攻略。 1. 确定页面结构 首先,我们需要确定页面的基本结构,包括 view、scroll-view、block 等组件。页面结构如下: <!– page.wxml –> <scroll-view class="grid-container"> &…

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