魔方在线秒表javascript版

魔方在线秒表是一款基于JavaScript开发的网页应用,主要用于计时比赛、训练等场景。下面将为大家详细讲解该应用的完整攻略。

安装与运行

  1. 下载代码

从GitHub上下载代码:https://github.com/AlgerHwang/Rubik-s-Cube-Online-Stopwatch,或者通过Git命令克隆仓库:

git clone https://github.com/AlgerHwang/Rubik-s-Cube-Online-Stopwatch.git
  1. 运行代码

将代码clone下来后,在本地找到项目的index.html文件并打开,即可在浏览器中看到应用的运行界面。

功能介绍

在应用界面中,有“启动/暂停”、“重置”、“记录”、“清空记录”四个按钮,分别用于控制计时、重置计时、记录已完成的计时、清空已记录的计时。

其中,“启动/暂停”按钮用于开始计时或暂停计时;“重置”按钮用于重置当前计时;“记录”按钮用于记录当前计时并显示在列表中;“清空记录”按钮用于清空所有已记录的计时。

代码说明

以下是应用的核心代码,用于控制计时和记录等操作:

<script>
  let timer // 计时器对象
  let timeTotal = 0 // 计时总时间
  let timeStart = 0 // 计时开始时间
  let running = false // 是否正在计时
  let records = [] // 计时记录

  function updateTime() {
    timeTotal = Date.now() - timeStart
    const hour = Math.floor(timeTotal / 3600000)
    const min = Math.floor((timeTotal - hour * 3600000) / 60000)
    const sec = Math.floor((timeTotal - hour * 3600000 - min * 60000) / 1000)
    const ms = Math.floor(timeTotal - hour * 3600000 - min * 60000 - sec * 1000)
    document.getElementById('time').innerText = `${hour.toString().padStart(2, '0')}:${min
      .toString()
      .padStart(2, '0')}:${sec.toString().padStart(2, '0')}.${ms.toString().padStart(3, '0')}`
  }

  function startStop() {
    if (running) {
      clearInterval(timer)
      running = false
    } else {
      timeStart = Date.now() - timeTotal
      timer = setInterval(updateTime, 10)
      running = true
    }
  }

  function reset() {
    clearInterval(timer)
    timeTotal = 0
    updateTime()
    running = false
  }

  function record() {
    const time = {
      id: records.length,
      time: timeTotal,
    }
    records.push(time)
    const recordList = document.getElementById('record-list')
    const listItem = document.createElement('li')
    listItem.innerText = `#${time.id} ${formatTime(time.time)}`
    recordList.appendChild(listItem)
  }

  function clearRecords() {
    records = []
    document.getElementById('record-list').innerHTML = ''
  }

  function formatTime(time) {
    const hour = Math.floor(time / 3600000)
    const min = Math.floor((time - hour * 3600000) / 60000)
    const sec = Math.floor((time - hour * 3600000 - min * 60000) / 1000)
    const ms = Math.floor(time - hour * 3600000 - min * 60000 - sec * 1000)
    return `${hour.toString().padStart(2, '0')}:${min
      .toString()
      .padStart(2, '0')}:${sec.toString().padStart(2, '0')}.${ms.toString().padStart(3, '0')}`
  }

</script>

示例说明

示例一:计时比赛

现在我们要组织一个速拧魔方比赛,使用魔方在线秒表进行比赛计时。我们可以通过启动/暂停、重置、记录、清空记录等功能完成计时操作,记录比赛成绩。

具体操作步骤如下:

  1. 打开魔方在线秒表

在浏览器中打开魔方在线秒表应用的index.html文件。

  1. 开始计时

在启动/暂停按钮上点击一下,开始计时。如果要暂停计时,再次点击启动/暂停按钮即可。

  1. 完成计时

当魔方开始还原后,我们可以点击启动/暂停按钮暂停计时,记录成绩。点击记录按钮,将成绩记录在列表中。

  1. 记录完所有成绩后,清空列表

当所有选手都完成比赛后,我们可以点击清空记录按钮,清空列表。

示例二:个人训练

我们也可以使用魔方在线秒表进行个人魔方训练,通过记录训练成果来提高自己的速度。

具体操作步骤如下:

  1. 打开魔方在线秒表

在浏览器中打开魔方在线秒表应用的index.html文件。

  1. 开始计时

在启动/暂停按钮上点击一下,开始计时。如果要暂停计时,再次点击启动/暂停按钮即可。

  1. 训练完成

当完成一次魔方还原后,我们可以点击启动/暂停按钮暂停计时,并记录成绩。点击记录按钮,将成绩记录在列表中。

  1. 继续训练

继续进行下一次训练,重复步骤2-3。

  1. 查看训练成果

训练完成后,我们可以查看列表中所有记录的成绩,以及平均成绩,来评价自己的训练成果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:魔方在线秒表javascript版 - Python技术站

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

相关文章

  • Javascript Math floor() 方法

    JavaScript中的Math.floor()方法用于将一个数向下取整,返回小于或等于给定数字的最大整数。以下是关于Math.floor()方法的完整攻略,包括两个示例。 JavaScript Math对象的floor()方法 JavaScript Math对象中的floor()方法用于将一个数向下取整,返回小于或等于给定数字的最大整数。 下面是floor…

    JavaScript 2023年5月11日
    00
  • JS数据类型判断的几种常用方法

    一、题目背景在JavaScript编程中,我们经常需要对数据的类型进行判断,以便进行不同的操作。本文详细讲解了JS数据类型判断的几种常用方法。 二、常用方法1. typeof 运算符这是最常用的判断数据类型的方式。它可以返回一个字符串,表示操作数的类型。它可以判断基本数据类型、“function”和“undefined”类型,但不能判断具体的引用类型。使用方…

    JavaScript 2023年5月27日
    00
  • JS中定时器的使用及页面切换时定时器无法清除问题的解决办法

    JS中定时器的使用及页面切换时定时器无法清除问题的解决办法 在开发中,定时器是经常使用的工具,可以让我们在某个时间间隔内执行一段代码。JS中常用的定时器有setTimeout和setInterval两种。 使用setTimeout setTimeout是在指定的一段时间后执行一段代码,且只会执行一次。可以使用clearTimeout取消定时器,代码示例如下:…

    JavaScript 2023年6月11日
    00
  • Javascript 对cookie操作详解及实例

    Javascript 对cookie操作详解及实例 什么是cookie Cookie 是一种存储在用户计算机上的小数据文件,它通常由网站在后端生成,通过浏览器发送到前端,并在前端保存。然后,在用户下次访问该网站时,该网站可以再次检索这些 cookie,并计算出该用户的特定信息,例如用户首选语言、购物车中的项目等。通常情况下,cookie 用于存储与特定网站相…

    JavaScript 2023年6月10日
    00
  • JavaScript中的异常捕捉介绍

    让我们来详细讲解一下“JavaScript中的异常捕捉介绍”的完整攻略。 异常简介 在JavaScript中,异常是指代码执行过程中出现的错误。当错误发生时,JavaScript会中止代码的正常执行,并抛出异常对象。异常可以是语法错误、类型错误、未定义变量、浏览器兼容性等等问题。 异常捕捉 在JavaScript中,我们可以使用try-catch语句来捕捉异…

    JavaScript 2023年5月27日
    00
  • JavaScript函数的调用以及参数传递

    一、JavaScript函数的调用 JavaScript函数的调用可以通过三种方式进行,分别是: 1.函数直接调用 语法格式为: functionName() 示例代码: function sayHello(){ console.log(‘Hello World!’); } sayHello(); //输出:Hello World! 2.方法调用 方法调用需…

    JavaScript 2023年5月27日
    00
  • Javascript生成器(Generator)的介绍与使用

    Javascript生成器(Generator)的介绍与使用 简介 Javascript生成器是一种特殊类型的函数,它允许我们暂停函数的执行并返回一个中间结果,稍后再继续执行并返回更多的中间结果。在实际应用中,生成器通常用于处理大量数据或者生成一系列的异步任务。 定义 我们可以使用函数声明或函数表达式来定义一个生成器。当定义一个生成器时,我们需要在函数名后面…

    JavaScript 2023年5月27日
    00
  • ASP.NET回车提交事件浅析

    ASP.NET回车提交事件浅析 ASP.NET回车提交事件是指在文本框输入内容时,按下回车键将输入的内容提交到后台服务器进行处理的事件。在ASP.NET开发中,回车提交事件是非常常见且有用的事件之一,其能够方便用户快速地提交数据,提高用户体验。本文将针对ASP.NET回车提交事件的实现方式进行浅析,并提供相应的实例说明。 实现方式 实现ASP.NET回车提交…

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