使用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 Date prototype 属性

    JavaScript 中的 Date 对象是一个内置对象,它包含了一些有用的属性和方法,可以用于处理日期和时间。其中,Date.prototype 属性是一个对象,它允许您 Date 对象添加自定义属性和方法。在本教程中,我们将详细介绍 Date.prototype 属性的使用方法。 Date.prototype 属性的基本语法如下: Date.protot…

    JavaScript 2023年5月11日
    00
  • JavaScript之事件循环案例讲解

    当用户在网页上操作时,我们需要通过JavaScript代码来响应用户的事件,例如点击、滚动、输入等等。但是由于JavaScript是单线程执行的,如果在响应事件的同时还要执行许多其他的代码,就会导致页面出现卡顿、响应迟缓的问题。为了解决这个问题,JavaScript引入了事件循环机制。 什么是事件循环 事件循环是JavaScript引擎实现多任务的基础,在执…

    JavaScript 2023年5月28日
    00
  • 五种js判断是否为整数类型方式

    下面是”五种js判断是否为整数类型方式”的攻略。 一、用typeof判断 代码示例 function isInteger(num) { return typeof num === ‘number’ && num % 1 === 0; } 描述 通过typeof操作符可以判断变量的类型,如果是number类型,那么就可以继续判断是否为整数。利用…

    JavaScript 2023年6月10日
    00
  • 送你43道JS面试题(收藏)

    下面我将详细讲解“送你43道JS面试题(收藏)”的完整攻略。 简介 该攻略是作者搜集并整理的 43 道 JS 面试题,旨在帮助 JS 开发者更好地准备面试。这 43 道面试题涵盖了 JS 的各个方面,包括变量、类型、函数、原型、闭包、异步等等内容。如果你能够顺利地回答这些问题,那么你的 JS 基础将会非常扎实。 使用方法 首先,你需要下载压缩包并解压。 进入…

    JavaScript 2023年5月28日
    00
  • ie下$.getJSON出现问题的解决方法

    让我来详细讲解“ie下$.getJSON出现问题的解决方法”的完整攻略。 问题描述 当我们在Internet Explorer(IE)浏览器中使用$.getJSON方法来获取数据时,会遇到跨域请求失败的问题,具体表现为:- 控制台报错:Access is denied.- 监控工具中看不到跨域请求。 解决方法 方法一:使用代理 使用代理的原理是先创建一个后端…

    JavaScript 2023年5月27日
    00
  • 微信小程序 跳转传参数与传对象详解及实例代码

    下面来详细讲解一下微信小程序中跳转传参数与传对象的方法及示例代码。 一、传参数 在小程序中跳转页面并传递参数,可以通过url上携带参数来实现,例如下面的示例代码: 1.1 发送方(A页面) wx.navigateTo({ url: ‘/pages/b/b?name=’+this.data.name+’&age=’+this.data.age }) 在…

    JavaScript 2023年6月11日
    00
  • JavaScript编写推箱子游戏

    下面是JavaScript编写推箱子游戏的完整攻略: 1. 准备工作 编写推箱子游戏前需要准备的工作如下: 确认游戏规则和界面设计; 编写HTML页面,并引入所需的CSS样式; 编写JavaScript脚本文件,并在HTML中引入。 2. 游戏规则 推箱子游戏是一种益智类的游戏,玩家需要将箱子移动到指定位置才能完成游戏。游戏规则如下: 游戏地图上有多个目的地…

    JavaScript 2023年6月11日
    00
  • JS正则RegExp.test()使用注意事项(不具有重复性)

    JS正则RegExp.test()使用注意事项(不具有重复性) 在JavaScript中,正则表达式是一种强大的工具,可以用来搜索和替换字符文本。其中,RegExp对象是正则表达式的对象表示法,它提供了很多方法来操作字符串。其中之一便是test()方法。 RegExp.test()方法简介 RegExp.test()方法是一个正则表达式对象的方法,它用来检查…

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