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 是一种前端开发必不可少的技术,但由于不同浏览器对Javascript的解析有所不同,会导致代码在不同浏览器上出现兼容性问题。本篇文章将详细介绍Javascript多浏览器兼容性问题以及解决方案。 兼容性问题 1. 兼容性问题分类 Javascript 兼容性问题主要分为以下几类: 对象…

    JavaScript 2023年6月10日
    00
  • JS正则子匹配实例分析

    JS正则表达式是一种强大的工具,它可以帮助程序员通过一定的规则来匹配和查找字符串中的特定字符,从而实现很多功能。而子匹配(也叫捕获组)是正则表达式的一个重要特性,它是指在正则表达式中使用括号包围某些字符,以便在匹配成功时可以获取这些字符。 下面我们将通过两个示例来演示JS正则子匹配的使用方法: 示例1:提取URL字符串中的文件名和后缀名 我们有一个URL字符…

    JavaScript 2023年6月10日
    00
  • Javascript基础之数组的使用

    Javascript基础之数组的使用 什么是数组? 数组是Javascript中的一种数据结构,用于存储多个相同类型的数据。一个数组可以包含任意数量的元素,且这些元素可以是数字、字符串、对象、甚至另一个数组。 如何声明一个数组? 声明一个数组的语法是 [],可以选择性地在中括号内包含多个元素。例如: var fruits = [‘apple’, ‘banan…

    JavaScript 2023年5月28日
    00
  • 详解JavaScript的while循环的使用

    详解JavaScript的while循环的使用 简介 JavaScript 中提供了循环语句来重复执行代码块,其中 while 循环是其中之一。while 循环是基于条件执行的循环,只要给定条件为真,就会执行循环体,直到给定条件为假。 语法 while 循环的语法如下: while (condition) { // 循环体语句 } 其中 condition …

    JavaScript 2023年5月27日
    00
  • JS中去掉array中重复元素的方法

    下面我将详细讲解 JS 中去掉 array 中重复元素的方法的完整攻略。 方法一:使用 Set 去重 可以将数组转换为 Set 对象,然后再将 Set 对象转换为数组,就达到了去重的效果。 示例代码: const arr = [1, 2, 2, 3, 4, 4]; const set = new Set(arr); const newArr = Array.…

    JavaScript 2023年5月27日
    00
  • JS 中使用Promise 实现红绿灯实例代码(demo)

    下面是使用 Promise 实现红绿灯实例代码的攻略。 红绿灯实例代码 在使用 Promise 实现红绿灯实例代码之前,我们需要了解什么是红绿灯实例代码。红绿灯实例代码是一种模拟红绿灯闪烁的代码,通常用于展示 Promise 的作用。 以下是基于 Promise 实现红绿灯实例代码的完整攻略: 1. 创建 Promise 对象 在开始使用 Promise 实…

    JavaScript 2023年6月10日
    00
  • JavaScript弹出对话框的三种方式

    当我们想向用户展示一些提示信息时,经常会使用JavaScript弹出对话框。JavaScript弹出对话框有三种方式,分别为alert()、confirm()和prompt()。 alert() 使用alert()方法弹出对话框可以显示警告信息,警告信息通常只需要用户确认即可。下面是alert()的语法: alert("警告信息"); 下…

    JavaScript 2023年5月27日
    00
  • JavaScript实现的简单Tab点击切换功能示例

    以下是“JavaScript实现的简单Tab点击切换功能示例”的完整攻略: 理解Tab切换功能 在网页设计中,Tab切换功能是常见的交互方式,它可以在同一页面内切换不同的内容,提升用户体验。在实现Tab切换功能时,需要通过JavaScript脚本实现元素的显示和隐藏。 准备工作 在实现Tab切换功能之前,需要进行一些准备工作。其中最重要的是,需要确定需要切换…

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