Javascript实现的StopWatch功能示例

下面我将详细讲解如何实现“Javascript实现的StopWatch功能示例”。

确定需求

首先,我们需要确定需求。

这个StopWatch功能的核心就是计时器功能,需要实现计时功能和计时器控制功能,可以是通过控制开始/暂停/停止操作实现。

HTML结构

接下来,我们需要确定HTML结构。

StopWatch功能界面的HTML结构比较简单,只需要一个显示时间的区域和三个按钮:开始、暂停和停止。

HTML代码如下所示:

 <div id="stopwatch">
    <span id="display">00:00:00</span>
    <button id="start">开始</button>
    <button id="stop">停止</button>
    <button id="pause">暂停</button>
</div>

JS代码

然后,我们需要编写JS代码来实现计时器功能及控制功能。

先定义好变量:

var startTime = 0;
var start = 0;
var end = 0;
var diff = 0;

var timerID = 0;

然后实现计时器功能:

function timer() {
    end = new Date();
    diff = end - start;
    diff = new Date(diff);

    var msec = diff.getMilliseconds();
    var sec = diff.getSeconds();
    var min = diff.getMinutes();
    var hr = diff.getHours() - 8;

    if (hr < 10) {
        hr = "0" + hr;
    }
    if (min < 10) {
        min = "0" + min;
    }
    if (sec < 10) {
        sec = "0" + sec;
    }
    if (msec < 10) {
        msec = "00" + msec;
    }
    else if (msec < 100) {
        msec = "0" + msec;
    }

    document.getElementById("display").innerHTML = hr + ":" + min + ":" + sec + ":" + msec;
    timerID = setTimeout("timer()", 10);
}

接着,实现控制功能:

function startWatch() {
    document.getElementById("display").innerHTML = "00:00:00:000";
    startTime = new Date();
    timer();
}

function stopWatch() {
    clearTimeout(timerID);
}

function pauseWatch() {
    clearTimeout(timerID);
    end = new Date();
    diff = end - start;
}

最后,我们需要添加按钮监听事件来触发计时器的开始、暂停和停止控制功能:

window.onload = function() {
    document.getElementById("start").addEventListener("click", startWatch);
    document.getElementById("stop").addEventListener("click", stopWatch);
    document.getElementById("pause").addEventListener("click", pauseWatch);
}

完成以上JS代码后,我们就实现了一个StopWatch功能的计时器。通过HTML呈现出来的界面,在JavaScript的实现下,实现了简单的计时器功能。  

示例说明

  • 示例1:以上代码在window.onload时会触发监听方法,开始按钮对应启动startWatch()方法,触发timer()方法进行计时并显示;暂停按钮对应触发pauseWatch方法,暂停计时。由于pauseWatch()方法并没有清空已经触发的timer()方法,因此暂停后重新启用,会继续在暂停时的时间基础上再次计时;停止按钮对应触发stopWatch()方法,清空计时器,停止计时。

  • 示例2:以上的calculateTimeElapsed()方法可以实现任意两个时间点之间的时间间隔计算,可以应用于任意需求,如考生答题的计时器,监测程序的计时器等等。但需要注意的是,js中的时间间隔是按照毫秒计算的,而和系统时间有关,因此不建议使用过长时间间隔或者精确度要求很高的场合,如科学实验等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Javascript实现的StopWatch功能示例 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • C# 代码大小写规范说明

    下面是关于“C# 代码大小写规范说明”的详细攻略。 一、概述 在编写C#代码时,遵守严格的大小写规范是很重要的。正确使用大小写不仅有助于提高代码的可读性,还能减少在编译时出现的错误。 在制定C#代码大小写规范时,应该遵循以下一般原则: 符号和关键字应该全部使用小写字母; 类和命名空间应该以大写字母开头,其余部分全部使用小写字母; 方法和变量名应该以小写字母开…

    C# 2023年6月6日
    00
  • C#聊天程序服务端与客户端完整实例代码

    下面我将为您详细讲解“C#聊天程序服务端与客户端完整实例代码”的完整攻略。 关于“C#聊天程序服务端与客户端完整实例代码” 这是一篇介绍如何使用C#语言实现聊天程序的完整攻略。其中包括服务端和客户端的完整代码。 服务端使用C#语言实现,使用TCP协议进行通信。并且,服务端为多线程模型,能够同时处理多个客户端连接请求。 客户端使用C#语言实现,可以与服务端建立…

    C# 2023年6月7日
    00
  • VS2019使用快捷键将代码对齐的方法

    下面是VS2019使用快捷键将代码对齐的方法的详细讲解: 1. 概述 在编写代码时,我们通常需要把代码对齐,以提高可读性。手动对齐耗时耗力,使用快捷键则可快速完成对齐操作。VS2019提供了一系列快捷键,可以帮助我们快速对齐代码。 2. 快捷键对应功能 下面是常用的几个快捷键及对应的代码对齐功能: Ctrl+K+D 快速格式化代码,实现对齐 Ctrl+K+F…

    C# 2023年6月3日
    00
  • 体验.NET与文件存储服务MinIO

    对象文件存储服务(OSS)主要用于存储零散的文件,和直接存储到本地文件系统中相比,有以下的几个优势: 跨服务器可用 兼容Amazon S3 API 横向扩容 高可用 支持加密 MinIO就是一个高性能的文件服务,我们使用.NET来操作一下。 部署MinIO 最简单的办法,就是在Docker上运行MinIO。可以使用以下命令启动MinIO: docker ru…

    C# 2023年4月19日
    00
  • C#启动windows服务方法的相关问题分析

    下面是针对”C#启动windows服务方法的相关问题分析”的完整攻略: 1. 了解Windows服务启动方式 在进行C#编程启动Windows服务之前,需要先了解Windows服务启动的几种方式: 自动:随着系统启动而启动。 自动(延迟启动):在系统启动完成后,延迟几个时间单位后启动。 手动:需要手动启动。 禁用:无法启动。 具体启动方式可在控制面板中的“管…

    C# 2023年5月15日
    00
  • js中escape对应的C#解码函数 UrlDecode

    下面就为您详细讲解: 将JS中的escape编码转换为C#中的UrlDecode是常见的需求,可以通过以下步骤实现。 首先,在C#里面引用System.Web命名空间: using System.Web; 然后,在代码里面调用UrlDecode方法来解码: string result = HttpUtility.UrlDecode(input); 其中,in…

    C# 2023年6月7日
    00
  • C# 数独求解算法的实现

    C# 数独求解算法的实现 本文将详细讲解如何使用C#语言实现数独求解算法。 数独简介 数独是一种逻辑类的游戏,玩家需要在9*9宫的大九宫格中,填入数字1~9,使每行、每列、每个小九宫格内都恰好包含数字1~9,且不重复。 算法思路 数独求解算法的基本思路是采用回溯算法。从数独的左上角开始,依次尝试填入1~9的数字,若当前填入的数字满足数独条件,则进入下一格继续…

    C# 2023年6月6日
    00
  • asp.net网站底部的版权信息实现代码且可维护

    关于ASP.NET网站底部的版权信息实现代码,一般有两种常见的实现方式,分别是通过ASP.NET Master页和ASP.NET User Control实现。 通过ASP.NET Master页实现 步骤一:创建Master页 在Visual Studio中创建Web应用程序,添加Master Page,并设置该Master Page为网站默认页。在Mas…

    C# 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部