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

yizhihongxing

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日

相关文章

  • 详解如何在JavaScript中使用装饰器

    下面我会详细介绍如何在JavaScript中使用装饰器,以及两条相关的示例说明。 什么是装饰器? 装饰器是一种特殊的函数,可以修改类、方法或属性的行为,并且可以在不改变它们原始代码的情况下实现这些修改。 装饰器源自于 Python 语言,最近已被加入 ECMAScript 标准中并成为 ES2017 的一部分,原生支持。 如何使用装饰器? 在 JavaScr…

    JavaScript 2023年6月11日
    00
  • d3.js入门教程之数据绑定详解

    d3.js入门教程之数据绑定详解 什么是d3.js? d3.js全称Data-Driven Documents,是一个非常强大的数据可视化库。使用d3.js可以将数据转化为各种图表、动画和交互式图形。 为什么需要数据绑定? 数据绑定是在d3.js中非常重要的概念,因为它是将数据和元素结合在一起的基础。在d3.js中,元素是表示数据的最终呈现形式。因此,了解如…

    JavaScript 2023年6月10日
    00
  • element-ui树形控件后台返回的数据+生成组织树的工具类

    生成树形组织结构需要以下两个步骤: 后台返回的数据必须是一个符合规范的JSON格式的树形结构。 例如,以下是符合规范的树形JSON数据结构示例: [ { "id": 1, "name": "Node1", "children": [ { "id": 2, &q…

    JavaScript 2023年6月10日
    00
  • 详解ionic本地相册、拍照、裁剪、上传(单图完全版)

    详解Ionic本地相册、拍照、裁剪、上传(单图完全版) 本文将详细介绍如何在Ionic项目中实现本地相册、拍照、裁剪、上传的功能,主要介绍以下步骤: 安装插件 导入插件 修改config.xml文件 实现功能的代码 编译打包 安装插件 我们需要安装以下插件: cordova plugin add cordova-plugin-camera cordova p…

    JavaScript 2023年6月11日
    00
  • JavaScript跨域方法汇总

    JavaScript跨域方法汇总 跨域是指在浏览器中执行的 JavaScript 代码不能够访问其它来源的数据。常见的场景是:当前页面代码想要请求第三方接口数据,但是该接口数据不允许跨域访问,导致请求失败。为了解决这种情况,我们需要使用跨域方法。 本文将介绍几种常用的 JavaScript 跨域方法,以及它们的优缺点。 1. JSONP JSONP 是一种跨…

    JavaScript 2023年6月11日
    00
  • js如何准确获取当前页面url网址信息

    获取当前页面URL网址信息是JavaScript中常用的操作,下面是两条获取当前页面URL信息的示例: 使用location对象的href属性获取当前页面URL JavaScript中的location对象提供了访问当前页面URL信息的方法,其中最常见的方法是使用location.href属性。href属性返回当前页面的完整URL,包括协议、主机名、路径和查…

    JavaScript 2023年5月19日
    00
  • JS获取IP、MAC和主机名的五种方法

    当网站需要获取客户端设备的IP、MAC地址或主机名时,我们可以使用JavaScript来实现。接下来,我们将会介绍五种获取这些信息的方法。 获取IP地址的方法 使用XMLHttpRequest对象向外部API发起请求,从响应中获取IP地址信息。 function getIP() { const xhr = new XMLHttpRequest(); xhr.…

    JavaScript 2023年5月28日
    00
  • JavaScript原型链及常见的继承方法

    JavaScript原型链及常见的继承方法 什么是原型链 在JavaScript中,每个对象都有一个原型对象,原型对象又有自己的原型对象,形成了一条链,我们称之为原型链。在这条链上,如果查找某个属性或方法(即某个属性或方法不存在于当前对象上),则会一直向上查找直到找到该属性或方法或查找到原型链的顶层,如果还没有找到,则返回undefined。 常见的继承方法…

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