js实现倒计时器自定义时间和暂停

倒计时器是一个非常常见的功能,可以用于定时关闭某些功能,在活动中用于倒计时提醒等场景。本文将介绍如何使用JavaScript实现倒计时器自定义时间和暂停的功能。

实现自定义时间

首先,我们需要先实现一个基本版的倒计时器,代码如下:

// 设置倒计时时间(秒)
var countDownTime = 60;

// 获取倒计时元素
var countDown = document.getElementById("countdown");

// 开始倒计时
var intervalId = setInterval(function() {
  if(countDownTime > 0) {
    countDownTime--;
    countDown.innerHTML = countDownTime + "秒";
  } else {
    clearInterval(intervalId);
    countDown.innerHTML = "倒计时结束";
  }
}, 1000);

上述代码中,我们先设置了倒计时时间为60秒,获取了倒计时元素,并使用setInterval定时器开始倒计时。在定时器的回调函数中,我们每隔一秒钟将倒计时时间减1,直到倒计时结束。

现在,如果我们想要实现自定义时间的功能,只需要将原来的countDownTime变量改为一个输入框的值即可。具体实现代码如下:

<!-- 输入框 -->
<input type="text" id="inputDuration" placeholder="输入倒计时时间(秒)">

<!-- 按钮 -->
<button onclick="startCountDown()">开始倒计时</button>

<!-- 倒计时元素 -->
<div id="countdown"></div>

<script>
function startCountDown() {
  // 获取输入框的值
  var inputDuration = document.getElementById("inputDuration").value;
  var countDownTime = parseInt(inputDuration);

  // 获取倒计时元素
  var countDown = document.getElementById("countdown");

  // 开始倒计时
  var intervalId = setInterval(function() {
    if(countDownTime > 0) {
      countDownTime--;
      countDown.innerHTML = countDownTime + "秒";
    } else {
      clearInterval(intervalId);
      countDown.innerHTML = "倒计时结束";
    }
  }, 1000);
}
</script>

在上述代码中,我们增加了一个输入框,用于输入倒计时时间(单位为秒)。在点击开始倒计时按钮时,我们获取输入框的值,并将其转换为一个整数用于倒计时。然后,我们使用setInterval定时器开始倒计时,同样每隔一秒钟减少倒计时时间,直到倒计时结束。

实现暂停功能

现在,我们已经可以使用JavaScript实现自定义时间的倒计时器了,接下来让我们看看如何实现暂停功能。

首先,在代码中增加一个按钮,用于触发暂停操作。然后,我们需要在代码中记录倒计时器的状态,用于控制暂停和继续操作。我们在代码中新增一个变量isCounting,用于表示当前倒计时器是否在运行中。代码如下:

<!-- 输入框 -->
<input type="text" id="inputDuration" placeholder="输入倒计时时间(秒)">

<!-- 按钮 -->
<button onclick="startCountDown()">开始倒计时</button>
<button onclick="pauseCountDown()">暂停倒计时</button>

<!-- 倒计时元素 -->
<div id="countdown"></div>

<script>
var intervalId;
var isCounting = false;

function startCountDown() {
  // 获取输入框的值
  var inputDuration = document.getElementById("inputDuration").value;
  var countDownTime = parseInt(inputDuration);

  // 获取倒计时元素
  var countDown = document.getElementById("countdown");

  // 开始倒计时
  intervalId = setInterval(function() {
    isCounting = true; // 标记倒计时器正在运行
    if(countDownTime > 0) {
      countDownTime--;
      countDown.innerHTML = countDownTime + "秒";
    } else {
      clearInterval(intervalId);
      countDown.innerHTML = "倒计时结束";
    }
  }, 1000);
}

function pauseCountDown() {
  if(isCounting) {
    clearInterval(intervalId);
    isCounting = false; // 标记倒计时器已经暂停
  }
}
</script>

在上述代码中,我们新增了一个按钮,用于触发暂停操作。然后,在startCountDown函数中,添加了isCounting变量用于标记倒计时器是否在运行中,每次倒计时器在更新时间时更新isCounting的值,以便我们在暂停操作时判断其是否正在运行。在pauseCountDown函数中,我们判断isCounting变量的值,如果是true,则停止定时器并将isCounting变量设置为false,表示倒计时器已经暂停。

这样,我们就实现了JavaScript倒计时器的自定义时间和暂停功能。

示例1:

假设我们在页面中添加一个输入框和一个按钮,用于输入倒计时时间和开始倒计时操作,如下:

<label for="inputDuration">倒计时时间:</label>
<input type="text" id="inputDuration" placeholder="输入倒计时时间(秒)">
<button onclick="startCountDown()">开始倒计时</button>

<div id="countdown"></div>

我们可以使用上述代码的startCountDown和pauseCountDown函数来实现倒计时器的自定义时间和暂停功能。

示例2:

假设现在我们需要在页面中实现两个不同的倒计时器,每个倒计时器可以设置不同的倒计时时间,并支持暂停和继续操作。代码如下:

<!-- 第一个倒计时器 -->
<label for="inputDuration1">倒计时时间1:</label>
<input type="text" id="inputDuration1" placeholder="输入倒计时时间(秒)">
<button onclick="startCountDown('countdown1')">开始倒计时</button>
<button onclick="pauseCountDown()">暂停倒计时</button>

<div id="countdown1"></div>

<hr>

<!-- 第二个倒计时器 -->
<label for="inputDuration2">倒计时时间2:</label>
<input type="text" id="inputDuration2" placeholder="输入倒计时时间(秒)">
<button onclick="startCountDown('countdown2')">开始倒计时</button>
<button onclick="pauseCountDown()">暂停倒计时</button>

<div id="countdown2"></div>

<script>
var intervalId;
var isCounting = false;

function startCountDown(countDownId) {
  // 获取输入框的值
  var inputDuration = document.getElementById("inputDuration").value;
  var countDownTime = parseInt(inputDuration);

  // 获取倒计时元素
  var countDown = document.getElementById(countDownId);

  // 开始倒计时
  intervalId = setInterval(function() {
    isCounting = true; // 标记倒计时器正在运行
    if(countDownTime > 0) {
      countDownTime--;
      countDown.innerHTML = countDownTime + "秒";
    } else {
      clearInterval(intervalId);
      countDown.innerHTML = "倒计时结束";
    }
  }, 1000);
}

function pauseCountDown() {
  if(isCounting) {
    clearInterval(intervalId);
    isCounting = false; // 标记倒计时器已经暂停
  }
}
</script>

在上述代码中,我们通过给按钮添加参数的方式,将倒计时器的元素id传递到startCountDown函数中,用于指定不同的倒计时器。在每个倒计时器的HTML代码中,我们使用不同的div元素来显示不同的倒计时器元素,每个元素的id分别为"countdown1"和"countdown2"。我们在每个倒计时器的按钮中都调用了同一个pauseCountDown函数来实现暂停操作,因此,不同的倒计时器均可以进行暂停和继续操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现倒计时器自定义时间和暂停 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript实现余额数字滚动效果

    下面我将详细讲解如何使用JS实现余额数字滚动效果。 什么是余额数字滚动效果? 余额数字滚动效果是指在页面中展示一个数值,例如用户的账户余额,数字从低到高逐渐滚动显示出来。这种效果可以增加页面的生动性和用户交互性,提升用户体验。 实现余额数字滚动效果的步骤 以下是实现余额数字滚动效果的主要步骤: 获取要展示的数字 将数字转化为每一位数字的数组 创建一个展示数字…

    JavaScript 2023年6月11日
    00
  • .NET实现在网页中预览Office文件的3个方法

    使用Office Web Viewer 可以使用Office Online中提供的Office Web Viewer来在线预览Office文档,具体实现步骤如下: (1)在HTML页面中使用iframe标签引用Office Web Viewer,如下所示: <iframe src="https://view.officeapps.live.c…

    JavaScript 2023年6月10日
    00
  • JavaScript数组去重的方法总结【12种方法,号称史上最全】

    我将根据您提供的问题,详细讲解如何使用JavaScript实现数组去重。请注意,这是一个12种方法的综合总结,包括常规的方法和使用ES6的新语法实现的方法,希望您能够学到一些有用的知识。 一、常规方法 1. 使用for循环双重遍历 该方法使用两重循环遍历整个数组,内部循环从外部循环的下一个元素开始,如果找到一个与当前元素相同的元素,则将其从数组中删除。时间复…

    JavaScript 2023年5月27日
    00
  • 浅谈JavaScript中this的指向问题

    浅谈JavaScript中this的指向问题 在javascript中,this关键字的指向问题一直是比较困惑的一个问题,因为它的指向受到一定的影响。如果我们没有完全搞清楚this的指向规则,那么在使用this的时候可能会带来很多不方便和错误的情况。接下来让我们一起来浅谈一下javascript中this的指向问题。 this的指向规则 在javascrip…

    JavaScript 2023年6月10日
    00
  • 解析javascript中鼠标滚轮事件

    下面是解析 JavaScript 中的鼠标滚轮事件的完整攻略: 什么是鼠标滚轮事件? 鼠标滚轮事件(mousewheel 事件)指的是当用户通过鼠标滚轮滚动时触发的事件。在 JavaScript 中,我们可以使用 mousewheel 事件来监听用户的鼠标滚轮操作。 如何监听鼠标滚轮事件? 在 JavaScript 中,可以通过以下两种方式来监听鼠标滚轮事件…

    JavaScript 2023年6月11日
    00
  • jquery内置验证(validate)使用方法示例(表单验证)

    下面我来详细讲解”jquery内置验证(validate)使用方法示例(表单验证)”。 1. 简介 jquery.validate是一款jquery表单验证插件,它可以实现对表单的各种验证功能,包括必填、数字验证、邮箱验证、电话验证、正则验证等。使用jquery.validate插件可以方便地对表单数据进行验证,从而提高用户体验和数据安全性。 2. 使用方法…

    JavaScript 2023年6月10日
    00
  • 详解JavaScript编程中的window与window.screen对象

    当我们在编写JavaScript代码时,经常需要使用一些浏览器提供的对象来完成我们的任务。其中window和window.screen对象可以说是比较常用的对象之一。下面我将详细讲解它们的用法及示例说明。 window对象 window对象是整个BOM(浏览器对象模型)的根对象,也是JavaScript编程中最重要的对象之一。它提供了很多方法和属性,可以用来…

    JavaScript 2023年6月10日
    00
  • JavaScript数组reduce()方法

    我们来详细讲解一下JavaScript数组reduce()方法的完整攻略。 简介 reduce() 方法是JavaScript数组的一个非常强大的方法,它可以将一个数组中的所有元素依次执行一个回调函数,并将最终结果返回。在实际应用中,这个方法非常多样化,能够应用于各种情景。 基本语法 reduce() 方法的基本语法如下: array.reduce(func…

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