原生JS实现简单的倒计时功能示例

下面我将详细讲解如何使用原生JS实现简单的倒计时功能。

  1. 编写HTML结构

首先,我们需要在HTML页面中创建一个倒计时的容器,可以使用<div>元素,并为其设置id属性,便于在JavaScript中操作。

<div id="countdown"></div>
  1. 编写JavaScript代码

接下来,我们使用JavaScript来实现倒计时功能。我们首先在页面中引入JavaScript文件,并使用Date()函数获取当前的时间戳和结束时间戳。然后,我们计算出两者之间的时间差,接着将时间差转换为时、分、秒的格式,并将结果更新到HTML页面中的倒计时容器中。

// 获取当前时间戳
var now = new Date().getTime(); 
// 获取结束时间戳(示例为2022年1月1日00:00:00)
var end = new Date('2022/01/01 00:00:00').getTime(); 
// 计算时间差
var leftTime = end - now; 

// 转换为时、分、秒格式
var hour = Math.floor(leftTime / (1000 * 60 * 60)); 
var minute = Math.floor(leftTime / (1000 * 60)) % 60; 
var second = Math.floor(leftTime / 1000) % 60; 

// 更新到页面中的倒计时容器中
var countdown = document.getElementById('countdown');
countdown.innerHTML = '距离2022年1月1日00:00:00还有:' + hour + '时' + minute + '分' + second + '秒';
  1. 示例说明

以上是一个简单的倒计时功能的示例,以下是两个拓展的示例说明。

(1)倒计时结束后提示

如果倒计时结束后需要提示用户,可以在计算时间差的代码后添加一个判断,当时间差小于等于0时,弹出提示框。

if (leftTime <= 0) {
  alert('倒计时结束!');
  return;
}

(2)动态设置结束时间

如果需要动态设置倒计时的结束时间,可以使用JavaScript的setInterval()函数实时获取当前时间,并更新倒计时容器中的倒计时。

function countdown() {
  var now = new Date().getTime();
  var end = new Date(document.getElementById('end').value).getTime();
  var leftTime = end - now;
  var hour = Math.floor(leftTime / (1000 * 60 * 60));
  var minute = Math.floor(leftTime / (1000 * 60)) % 60;
  var second = Math.floor(leftTime / 1000) % 60;
  var countdown = document.getElementById('countdown');
  if (leftTime <= 0) {
    countdown.innerHTML = '倒计时结束!';
    clearInterval(timer);
  } else {
    countdown.innerHTML = '距离' + document.getElementById('end').value + '还有:' + hour + '时' + minute + '分' + second + '秒';
  }
}
var timer = setInterval(countdown, 1000);

在以上代码中,我们定义了一个countdown()函数来实现动态计算倒计时。函数中获取了一个输入框中用户输入的结束时间,然后使用setInterval()函数每隔1秒执行一次该函数,实时更新倒计时容器中的倒计时。当时间差小于等于0时,将倒计时容器中显示内容改为“倒计时结束!”。同时,使用clearInterval()函数停止计时器的执行。

希望以上攻略能帮到你实现原生JS实现简单的倒计时功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:原生JS实现简单的倒计时功能示例 - Python技术站

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

相关文章

  • JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法

    当我们使用 JavaScript 编写代码时,经常会遇到“Uncaught SyntaxError: Unexpected token ILLEGAL”这样的错误提示,而这个错误提示一般代表着代码中存在语法错误,但有时候我们也会遇到代码本身没有错误,但依然出现了这个错误提示的情况,究竟该如何解决呢?下面是详细的解决方法攻略: 一、检查代码语法 首先,我们需要…

    JavaScript 2023年5月18日
    00
  • JavaScript利用切片实现大文件断点续传

    下面我将为你详细讲解“JavaScript利用切片实现大文件断点续传”的完整攻略。 什么是大文件断点续传? 大文件断点续传是指在上传或下载大文件时,当中途发生网络异常或操作中断等情况,可以暂停传输并记录已传输的数据,下次继续传输时从中断处开始传输,避免重新传输整个文件。 实现大文件断点续传的原理 大文件断点续传的实现原理是将大文件切分成若干个小部分即“分片”…

    JavaScript 2023年5月27日
    00
  • Javascript Date setSeconds() 方法

    以下是关于JavaScript Date对象的setSeconds()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的setSeconds()方法 JavaScript Date对象的setSeconds()方法设置日期对象的秒部分。该方法接受一个整数,表示要设置的秒数。如果该参数超出了JavaScript所能表示的范围,则自动调整为…

    JavaScript 2023年5月11日
    00
  • js校验表单后提交表单的三种方法总结

    JS校验表单后提交表单有三种方法总结,分别是: 1.提交前在JS验证,如果无误则提交。 2.在提交按钮上绑定函数,在函数中判断表单是否填写正确。 3.在表单提交时,拦截表单提交请求,验证表单数据后提交。 下面我将会对上述每个方法进行详细讲解,并提供示例: 1.提交前在JS验证,如果无误则提交 这个方法是最基本的方法,它的核心是在提交表单之前进行验证。我们可以…

    JavaScript 2023年6月10日
    00
  • FileZilla无法连接服务器怎么办?

    FileZilla无法连接服务器怎么办? 在使用FileZilla连接服务器时,有时可能会遇到无法连接服务器的问题。以下是可能导致该问题的一些原因和解决方法: 原因一:服务器地址或端口号错误 在连接服务器时,首先要确认您输入的服务器地址和端口号是否正确。请注意,端口号可能会因服务器协议而异(例如,FTP的默认端口号为21,而SFTP的默认端口号为22)。 解…

    JavaScript 2023年5月28日
    00
  • Vue Element前端应用开发之根据ABP后端接口实现前端展示

    一、背景介绍 ABP(AspNet Boilerplate)是一个基于ASP.NET Core 3.0 + Angular 8.0 的模块化Web应用程序框架。Vue Element是Vue.js的一套UI组件库。本篇攻略将介绍如何通过调用ABP后端接口实现Vue Element前端应用开发。 二、环境要求 安装Vue CLI :npm install -g…

    JavaScript 2023年6月10日
    00
  • 优化javascript的执行效率一些方法总结

    优化Javascript的执行效率一些方法总结 Javascript在前端开发中扮演着重要的角色,但是在开发过程中,经常会遇到Javascript代码执行效率较差的情况。以下是优化Javascript执行效率的一些方法总结。 1. 减少DOM操作 DOM操作是非常消耗性能的,每次变更都会让浏览器重新计算一次布局和绘制,因此尽量少的执行DOM操作可以提升代码的…

    JavaScript 2023年6月10日
    00
  • 使用JavaScript检测Firefox浏览器是否启用了Firebug的代码

    要使用JavaScript检测Firefox浏览器是否启用了Firebug,可以通过以下步骤进行操作: 使用navigator.userAgent属性获取当前浏览器的信息。 var isFirefox = navigator.userAgent.indexOf("Firefox") > -1; 判断当前浏览器是否为Firefox浏览…

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