使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能)

下面就为您详细讲解如何使用JavaScript实现网页秒表功能。

一、制作基本网页结构

首先,在HTML文件中添加一个包含开始、暂停、继续、重置按钮和显示计时时间的元素。具体代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>页面标题</title>
  </head>
  <body>
    <div id="timer">00:00:00</div>
    <button id="start">开始</button>
    <button id="pause">暂停</button>
    <button id="continue">继续</button>
    <button id="reset">重置</button>  
  </body>
</html>

二、编写JavaScript代码

接下来,在JavaScript文件中编写计时器相关函数,分别实现开始、暂停、继续、重置功能,具体代码如下:

var timer = null;
var time = 0;

// 开始计时
function startTimer() {
  clearInterval(timer);  // 清除计时器
  timer = setInterval(function() {
    time++;
    var hour = Math.floor(time / 3600);
    var minute = Math.floor(time / 60) % 60;
    var second = time % 60;
    var hourStr = hour < 10 ? "0" + hour : hour;
    var minuteStr = minute < 10 ? "0" + minute : minute;
    var secondStr = second < 10 ? "0" + second : second;
    document.getElementById("timer").innerHTML = hourStr + ":" + minuteStr + ":" + secondStr;
  }, 1000);
}

// 暂停计时
function pauseTimer() {
  clearInterval(timer);
}

// 继续计时
function continueTimer() {
  startTimer();
}

// 重置计时
function resetTimer() {
  time = 0;
  clearInterval(timer);
  document.getElementById("timer").innerHTML = "00:00:00";
}

// 绑定按钮事件
document.getElementById("start").addEventListener("click", startTimer);
document.getElementById("pause").addEventListener("click", pauseTimer);
document.getElementById("continue").addEventListener("click", continueTimer);
document.getElementById("reset").addEventListener("click", resetTimer);

三、实例说明

示例一:在Vue.js中使用秒表功能

在Vue.js中使用秒表功能可以使用Vue组件,并将计时器相关函数封装进组件内。具体代码如下:

<template>
  <div>
    <div class="timer">{{ hourStr }}:{{ minuteStr }}:{{ secondStr }}</div>
    <button @click="startTimer">开始</button>
    <button @click="pauseTimer">暂停</button>
    <button @click="continueTimer">继续</button>
    <button @click="resetTimer">重置</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      timer: null,
      time: 0
    }
  },
  computed: {
    hourStr() {
      return this.formatNumber(Math.floor(this.time / 3600));
    },
    minuteStr() {
      return this.formatNumber(Math.floor(this.time / 60) % 60);
    },
    secondStr() {
      return this.formatNumber(this.time % 60);
    }
  },
  methods: {
    startTimer() {
      clearInterval(this.timer);
      this.timer = setInterval(() => {
        this.time++;
      }, 1000);
    },
    pauseTimer() {
      clearInterval(this.timer);
    },
    continueTimer() {
      this.startTimer();
    },
    resetTimer() {
      this.time = 0;
      clearInterval(this.timer);
    },
    formatNumber(num) {
      return num < 10 ? "0" + num : num;
    }
  }
}
</script>

示例二:添加警报功能

网页秒表功能还可以添加警报功能,当计时器时间达到一定值时,触发警报。具体代码如下:

function checkTime() {
  var targetTime = 300; // 目标时间,单位秒
  if (time >= targetTime) {
    document.title = "时间到!"; // 修改页面标题
    alert("时间到!");
    resetTimer();
  }
}

// 在startTimer中添加checkTime
function startTimer() {
  clearInterval(timer);
  timer = setInterval(() => {
    time++;
    var hour = Math.floor(time / 3600);
    var minute = Math.floor(time / 60) % 60;
    var second = time % 60;
    var hourStr = hour < 10 ? "0" + hour : hour;
    var minuteStr = minute < 10 ? "0" + minute : minute;
    var secondStr = second < 10 ? "0" + second : second;
    document.getElementById("timer").innerHTML = hourStr + ":" + minuteStr + ":" + secondStr;
    checkTime();
  }, 1000);
}

这样就可以增加一个在计时达到目标时间后触发警报的功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用JavaScript实现网页秒表功能(含开始、暂停、继续、重置功能) - Python技术站

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

相关文章

  • javascript类数组的深入理解

    JavaScript类数组的深入理解 JavaScript中的类数组是一个类似数组但却不是真正的数组的对象。它们通常具有length属性和对应的数字键,但是缺少了一些数组原型方法。JavaScript中的类数组包括函数中的arguments对象、HTMLCollection对象和NodeList对象等。 类数组的常用方法 转换为真正的数组 由于类数组不是真正…

    JavaScript 2023年5月27日
    00
  • Node工程的依赖包管理方式

    作者:京东零售 陈震 在前端工程化中,JavaScript 依赖包管理是非常重要的一环。依赖包通常是项目所依赖的第三方库、工具和框架等资源,它们能够帮助我们减少重复开发、提高效率并且确保项目可以正确的运行。 目前比较常见的前端包管理器有 npm 和 Yarn,npm 是 Node.js 自带的包管理器,它可以安装、共享和分发 node.js 模块。最近pnp…

    JavaScript 2023年4月24日
    00
  • js下关于onmouseout、事件冒泡的问题经验小结

    下面我将详细讲解js下关于onmouseout、事件冒泡的问题经验小结的完整攻略。 什么是onmouseout事件 onmouseout事件是一种事件类型,它在鼠标离开某个元素的时候被触发。可以使用onmouseout事件来执行一些操作,如显示提示信息、更改样式等。 什么是事件冒泡 事件冒泡是指事件在触发后,会从最内层元素开始依次向外层元素进行传递,直到传递…

    JavaScript 2023年6月10日
    00
  • JavaScript运行过程中的“预编译阶段”和“执行阶段”

    JavaScript代码的运行分为两个阶段:预编译阶段和执行阶段。在预编译阶段,JavaScript引擎会进行一些预处理操作,包括变量声明、函数声明、变量提升等。执行阶段则是按照预处理结果进行实际代码的执行。 预编译阶段 变量声明 在预编译阶段,JavaScript引擎会将代码中所有的变量声明存储到作用域中。例如: console.log(a); // un…

    JavaScript 2023年5月27日
    00
  • javascript中数组与对象的使用方法区别

    JavaScript 中数组和对象都是非常重要的数据类型,它们在编程中有着非常广泛和重要的应用。接下来,我将为您讲解 JavaScript 中数组与对象的使用方法区别,以及它们的应用。我将分以下三个部分详细讲解。 定义和声明 在JavaScript中,定义数组使用方括号[],例如: let arr = [1, 2, 3]; 而定义对象使用大括号{},例如: …

    JavaScript 2023年5月27日
    00
  • 一篇文章让你搞懂JavaScript 原型和原型链

    作为网站的作者,我很高兴为您提供JavaScript原型和原型链的完整攻略。下面是几个关键点,可以帮助您更好地理解原型和原型链: 1. 什么是原型? JavaScript 中的每个对象都有一个 prototype 属性,该属性指向该对象的原型。原型是一个对象,它包含属性和方法,作为对象的模板。当您创建一个新对象时,它会继承原型中的属性和方法。原型可以理解为对…

    JavaScript 2023年6月10日
    00
  • 基于dataset的使用和图片延时加载的实现方法

    为了给你更全面的介绍,我将分为两部分来解答你的问题。 基于 dataset 的使用 dataset是HTML5中新增的一个属性,用于为元素存储自定义数据。它可以为我们提供一种方便快捷的方式来访问元素存储的数据,而不需要通过其他的方式来操作元素的属性。 增加数据 <body> <div data-name="zhangsan&quo…

    JavaScript 2023年6月10日
    00
  • JavaScript与C# Windows应用程序交互方法

    JavaScript与C# Windows应用程序交互方法 本文将介绍在 Windows 应用程序中如何实现 JavaScript 与 C# 相互通信的方法,主要包括以下内容: 通过 WebView 控件实现 JavaScript 与 C# 的通信 JavaScript 调用 C# 方法示例 C# 调用 JavaScript 方法示例 实现 JavaScri…

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