JavaScript定时器设置、使用与倒计时案例详解

JavaScript定时器设置、使用与倒计时案例详解

定时器

JavaScript定时器是一种在指定时间间隔内反复执行指定的代码段的机制。利用定时器可以实现一些定时操作,例如轮询、闪烁等等。JavaScript中提供了两种定时器,分别是:

  • setInterval: 可以反复执行指定的代码段,直到清除定时器。
  • setTimeout: 在指定时间间隔内执行一次代码段,然后结束定时器。

setInterval

使用setInterval()可以定时执行一段指定的代码,并且可设置时间间隔。语法如下:

setInterval(function, milliseconds);
  • function: 要执行的代码段
  • milliseconds: 执行的时间间隔,单位为毫秒。可以是整数,也可以是小数。

例如,下面的代码每隔1s在控制台输出Hello World!

setInterval(function(){
  console.log('Hello World!');
}, 1000);

在使用setInterval()时,需要注意以下几点:

  • setInterval()返回的是一个数值,代表定时器的ID。可以用这个ID来取消定时器。
  • 在每个周期执行的代码段需要足够快,不然会导致代码堵塞,无法正常运行。

setTimeout

使用setTimeout()可以设定一个指定时间后执行的定时任务。语法如下:

setTimeout(function, milliseconds);
  • function: 要执行的代码段
  • milliseconds: 设定的时间间隔,单位为毫秒。可以是整数,也可以是小数。

例如,下面的代码在2s后在控制台输出Hello World!

setTimeout(function(){
  console.log('Hello World!');
}, 2000);

在使用setTimeout()时,需要注意以下几点:

  • setTimeout()返回的是一个数值,代表定时器的ID。可以用这个ID来取消定时器。
  • 在设定的时间间隔内只执行一次,不会反复执行。

倒计时案例

下面我们通过一个倒计时案例来展示JavaScript定时器的使用。

我们需要实现一个倒计时功能,用户输入要倒计时的总时间,然后每隔一秒钟在页面上显示剩余时间,直到倒计时结束。

首先我们在HTML文件中添加一个输入框和一个按钮:

<label for="input-time">倒计时总时间:</label>
<input type="number" id="input-time" min="1">
<button id="start-countdown">开始倒计时</button>

然后我们在JavaScript文件中添加代码如下:

var timerId = null; //定义定时器ID
var totalSeconds = 0; //定义总秒数变量
var secondsLeft = 0; //定义剩余秒数变量

//点击按钮开始倒计时
document.querySelector('#start-countdown').addEventListener('click', function(){
  //获取用户输入的总时间,转化为秒
  totalSeconds = document.querySelector('#input-time').value * 60;

  //显示倒计时
  document.querySelector('#show-time').textContent = formatTime(totalSeconds);

  //设置每一秒的倒计时操作
  timerId = setInterval(function(){
    if(secondsLeft === 0){
      //如果倒计时结束,清除定时器
      clearInterval(timerId);
      alert('Time is up!');
    }else{
      //每一秒计算剩余时间,更新页面显示
      secondsLeft--;
      document.querySelector('#show-time').textContent = formatTime(secondsLeft);
    }
  }, 1000);
});

//每次倒计时更新显示时间的格式
function formatTime(seconds){
  var minutes = Math.floor(seconds / 60);
  var secondsToShow = seconds % 60;
  return minutes + ' 分钟 ' + secondsToShow + ' 秒';
}

在上面的代码中,我们首先获取了用户输入的总时间,然后在页面上显示倒计时,并使用setInterval()方法定义了每秒钟的倒计时操作。在每秒钟的倒计时操作中,我们每次更新剩余时间的变量并更新倒计时显示。当剩余时间为0时,我们清除了定时器,并提示用户时间已经结束。

案例二:定时刷新页面

下面我们来看一个简单的定时刷新页面的例子。假设我们需要每隔5秒钟自动刷新一次页面,我们可以使用以下代码:

setInterval(function(){
  location.reload();
}, 5000);

在上面的代码中,我们每隔5秒钟使用setInterval()方法执行一段重新加载页面的代码。这样页面将会被自动刷新。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript定时器设置、使用与倒计时案例详解 - Python技术站

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

相关文章

  • Chrome调试折腾记之JS断点调试技巧

    Chrome调试折腾记之JS断点调试技巧 介绍 Web开发中调试是必不可少的环节之一,Chrome提供了丰富的调试工具来帮助我们定位问题。本文将着重介绍Chrome的JS断点调试技巧。 步骤 步骤一:打开调试工具 打开需要调试的页面,按下 F12 或右键选择 审查元素 ,即可打开 Chrome 的调试工具。 步骤二:在JS代码中插入断点 在需要调试的代码行左…

    JavaScript 2023年6月10日
    00
  • js 递归和定时器的实例解析

    JS 递归和定时器的实例解析 什么是递归? 递归是一种算法或函数设计技术,它是通过函数体内调用函数本身来完成的。通常情况下,递归函数是以递归式的表达式来定义的。简单来说,递归可以看作是把大的问题不断化解成相同的小问题,最终解决相同的小问题就能解决大的问题。 递归的示例 function sum(n) { if (n <= 1) return 1; re…

    JavaScript 2023年6月11日
    00
  • 什么是DOM(Document Object Model)文档对象模型

    DOM (Document Object Model,文档对象模型)是一种表示 HTML 和 XML 文档的标准程序接口。通过使用 DOM,可以访问和操作一个文档中的内容。DOM 描述了一个层次化的节点树,允许开发人员添加、修改或删除文档中的任意部分。 DOM 模型分为三个部分:文档结构模型(Document),元素对象模型(Element)和特性对象模型(…

    JavaScript 2023年6月10日
    00
  • javascript firefox兼容ie的dom方法脚本

    要让javascript的DOM方法在Firefox和IE两种浏览器下兼容,需要注意以下几点: 使用标准的DOM API方法,避免使用浏览器特有的方法。 例如,不要使用IE特有的 document.all 方法,应该使用document.getElementById() 或 document.getElementsByTagName()方法来获取HTML元素…

    JavaScript 2023年6月10日
    00
  • js与jQuery实现获取table中的数据并拼成json字符串操作示例

    下面是关于“js与jQuery实现获取table中的数据并拼成json字符串操作示例”的完整攻略。 1. 操作示例简介 在网站的业务中,经常需要从table中获取数据,并转化成JSON对象,便于传输数据或者进行数据处理。这里提供两种实现方式,分别是使用原生js和jQuery库。 2. 使用原生js获取数据并拼成json字符串 2.1. 获取table中数据 …

    JavaScript 2023年5月27日
    00
  • js实现手机web图片左右滑动效果

    JS实现手机web图片左右滑动效果攻略 实现手机web图片左右滑动效果,可以使用现成的JS插件,如swiper。同时,也可以使用原生JS代码自己实现左右滑动的效果。 方案一:使用swiper插件 swiper是一个现成的JS插件,它可以实现各种各样的轮播图效果,包括手机web图片左右滑动效果。使用swiper实现图片左右滑动效果,需要在头部引入swiper库…

    JavaScript 2023年6月11日
    00
  • JavaScript给数组添加元素的6个方法

    下面是详细讲解“JavaScript给数组添加元素的6个方法”的完整攻略。 1. 直接赋值 通过直接赋值的方式,可以给数组添加新的元素。示例如下: const arr = [1, 2, 3] // 定义一个数组 arr[3] = 4 // 直接给数组添加一个元素 console.log(arr) // [1, 2, 3, 4] 这种方式比较简单,但有一个问题…

    JavaScript 2023年5月27日
    00
  • javascript数组中的concat方法和splice方法

    当我们在使用JavaScript时,经常需要对数组进行操作。其中,涉及到的操作方法很多,其中concat()和splice()方法是非常常用的两个方法。本文将详细介绍这两个方法的作用及其用法。 一、concat方法 concat方法可以连接两个或多个数组,返回一个新的数组。并不会修改现有的数组,而是创建一个新的数组,其中包含原来的数组的元素。具体用法如下: …

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