Javascript倒计时代码

JavaScript 倒计时能够给网站或者应用程序带来极佳的用户体验,它通常用于页面的时间限制、登录等场景。下面是 JavaScript 倒计时的完整攻略。

步骤1:创建 HTML 页面

首先,我们需要在 HTML 页面中添加一个画布元素 canvas 以及 JavaScript 倒计时所需要的 HTML 元素:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>JavaScript 倒计时</title>
</head>
<body>
  <canvas id="myCanvas" width="200" height="200"></canvas>
  <div id="countdown"></div>
  <script src="countdown.js"></script>
</body>
</html>

这个 HTML 页面中包含了一个画布元素和一个用于放置倒计时的 div 元素。

步骤2:创建 JavaScript 文件

接下来,我们需要创建一个 JavaScript 文件,用于处理倒计时相关的逻辑。

function createCountDown(endtime, elementId) {
  var countdown = document.getElementById(elementId);
  var timeinterval = setInterval(function() {
    var t = getTimeRemaining(endtime);
    var minutes = t.minutes;
    var seconds = t.seconds;
    countdown.innerHTML = '倒计时剩余时间:' + minutes + ' 分钟 ' + seconds + ' 秒';
    if (t.total <= 0) {
      clearInterval(timeinterval);
      countdown.innerHTML = '倒计时结束';
    }
  }, 1000);
}

function getTimeRemaining(endtime) {
  var t = Date.parse(endtime) - Date.parse(new Date());
  var seconds = Math.floor((t / 1000) % 60);
  var minutes = Math.floor((t / 1000 / 60) % 60);
  return {
    'total': t,
    'minutes': minutes,
    'seconds': seconds
  };
}

createCountDown('2022-01-01T00:00:00', 'countdown');

这个 JavaScript 文件包含了两个主要的函数:createCountDowngetTimeRemaining

getTimeRemaining 函数用于计算剩余的时间,接受一个参数 endtime 表示倒计时结束时间,返回一个包含剩余时间 total、分钟数 minutes 和秒数 seconds 的对象。

createCountDown 函数用于创建倒计时,它接收两个参数 endtime 和 elementId,分别表示倒计时结束时间和用于显示倒计时的元素 ID。函数内部先获取到需要显示倒计时的元素,然后通过 setInterval 函数每隔一秒钟获取一次剩余时间,然后把剩余时间显示到页面上。

步骤3:添加画布动画

最后,为了增强页面的交互性,我们可以添加一个画布动画,让数字的变化更加平滑和生动。

function createCountDown(endtime, elementId, canvasId) {
  var countdown = document.getElementById(elementId);
  var canvas = document.getElementById(canvasId);
  var context = canvas.getContext('2d');
  var timeinterval = setInterval(function() {
    var t = getTimeRemaining(endtime);
    var minutes = t.minutes;
    var seconds = t.seconds;
    countdown.innerHTML = '倒计时剩余时间:' + minutes + ' 分钟 ' + seconds + ' 秒';
    drawCanvas(context, canvas, minutes, seconds);
    if (t.total <= 0) {
      clearInterval(timeinterval);
      countdown.innerHTML = '倒计时结束';
    }
  }, 1000);
}

function drawCanvas(context, canvas, minutes, seconds) {
  var radius = canvas.height / 2;
  context.beginPath();
  context.arc(radius, radius, radius - 5, 0, 2 * Math.PI);
  context.fillStyle = 'white';
  context.fill();
  context.lineWidth = 5;
  context.strokeStyle = '#345';
  context.stroke();
  context.font = '24px Arial';
  context.fillStyle = '#345';
  context.textAlign = 'center';
  context.textBaseline = 'middle';
  context.fillText(formatTime(minutes) + ':' + formatTime(seconds), radius, radius);
}

function formatTime(time) {
  return time < 10 ? '0' + time : time;
}

createCountDown('2022-01-01T00:00:00', 'countdown', 'myCanvas');

这个修改后的 JavaScript 文件把倒计时显示到了画布上,并且添加了一些动画效果。其中,drawCanvas 函数用于绘制画布内容,包括外边界、倒计时数字和时间文本。formatTime 函数用于格式化时间,将不足两位数的时间补齐。在 createCountDown 函数中,我们加入了画布元素的获取、绘制和清空操作。

示例1:倒计时1分钟

接下来,我们演示一个倒计时1分钟的例子。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>JavaScript 倒计时示例1</title>
</head>
<body>
  <canvas id="myCanvas" width="200" height="200"></canvas>
  <div id="countdown"></div>
  <script src="countdown.js"></script>
  <script>
    createCountDown(new Date(Date.now() + 60 * 1000), 'countdown', 'myCanvas');
  </script>
</body>
</html>

这个 HTML 页面中的 JavaScript 代码用于创建一个倒计时1分钟的计时器。我们通过传入一个 Date 实例来指定倒计时结束时间。

示例2:倒计时10秒

现在,我们演示一个倒计时10秒的例子,但这一次我们只在 DIV 元素中显示倒计时,不需要画布元素的动画效果。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>JavaScript 倒计时示例2</title>
</head>
<body>
  <div id="countdown"></div>
  <script src="countdown.js"></script>
  <script>
    createCountDown(new Date(Date.now() + 10 * 1000), 'countdown');
  </script>
</body>
</html>

这个 HTML 页面中的 JavaScript 代码用于创建一个倒计时10秒的计时器,只需传入倒计时结束时间和 DIV 元素的 ID。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript倒计时代码 - Python技术站

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

相关文章

  • JavaScript基础之文件上传与下载的实现详解

    JavaScript基础之文件上传与下载的实现详解 一、文件上传 文件上传是我们经常会用到的功能,本节中将讲解使用JavaScript实现文件上传的方法。 1. HTML代码 首先,我们需要编写一个HTML的表单,用于选择文件和提交上传请求。 <form id="upload-form"> <input type=&qu…

    JavaScript 2023年5月27日
    00
  • ASP.NET MVC5网站开发之用户添加和浏览2(七)

    《ASP.NET MVC5网站开发之用户添加和浏览2(七)》是一篇系列文章中的一篇,主要介绍了如何在ASP.NET MVC5网站中实现用户添加和浏览功能。该文章主要分为以下几部分: 实现用户添加功能。 实现用户浏览功能。 使用Bootstrap样式美化界面。 具体攻略如下: 实现用户添加功能 步骤如下: 在MVC项目的Controller文件夹下创建User…

    JavaScript 2023年6月11日
    00
  • 学习JavaScript设计模式之状态模式

    以下是详细的攻略: 学习JavaScript设计模式之状态模式 状态模式是什么? 状态模式是一种行为型设计模式,它允许对象在其内部状态更改时更改其行为。这个模式的主要想法是通过创建有限状态机来满足状态相关行为的需要。 状态模式的优点? 优化大型、复杂代码的结构。 减少了 if 语句的使用,使得代码更加简洁。 更好的可扩展性,可以方便地增加、删除或修改状态,而…

    JavaScript 2023年5月28日
    00
  • JS实现的ajax和同源策略(实例讲解)

    当网页需要与服务器进行数据交互时,可以使用JS实现的ajax技术。然而,同源策略限制了网页只能与同一域名下的服务器进行数据交互,从而保证了用户数据的安全性。下面将详细讲解JS实现的ajax和同源策略的完整攻略,包括如何使用ajax发送请求、如何处理响应数据、如何设置同源策略等内容。 AJAX AJAX(Asynchronous JavaScript and …

    JavaScript 2023年6月11日
    00
  • 详解JavaScript实现JS弹窗的三种方式

    详解JavaScript实现JS弹窗的三种方式 前言 在网页开发中,经常会用到弹窗这个功能。弹窗可以用来展示一些重要信息、提醒用户进行操作,甚至用来进行登录等相关操作。本文将详细介绍 JavaScript 实现三种 JS 弹窗的方式。 方式一:原生 JavaScript 实现 原生 JavaScript 实现弹窗的方式主要使用 window.alert()、…

    JavaScript 2023年5月18日
    00
  • JavaScript前端面试组合函数

    JavaScript前端面试中,组合函数是一个常见的考点,如果能够掌握组合函数的概念、实现及应用,能够极大地提高我们面试的成功率。本篇文章将会详细讲解“组合函数”的相关知识点,并提供两个示例来进行说明。 什么是组合函数 组合函数指的是将多个函数组合成一个新的函数,新函数会按照一定的顺序调用这些子函数,并将每个子函数的返回值作为参数传递给下一个函数。组合函数可…

    JavaScript 2023年5月27日
    00
  • JavaScript实现余额数字滚动效果

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

    JavaScript 2023年6月11日
    00
  • 关于js datetime的那点事

    关于JS DateTime的那点事 Javascript中的日期和时间对象是非常常用的,特别是在前端web开发中。在这篇攻略中,我们会详细讲解JS DateTime相关的概念以及如何在JS中处理日期和时间。 JS中的日期和时间对象 在JS中,日期和时间对象可以通过 Date() 构造函数来创建。以下是几种常见的创建日期对象的方法。 创建一个新日期对象 con…

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