Files
freeCodeCamp/curriculum/challenges/chinese/03-front-end-libraries/front-end-libraries-projects/build-a-25-5-clock.md
Oliver Eyton-Williams ee1e8abd87 feat(curriculum): restore seed + solution to Chinese (#40683)
* feat(tools): add seed/solution restore script

* chore(curriculum): remove empty sections' markers

* chore(curriculum): add seed + solution to Chinese

* chore: remove old formatter

* fix: update getChallenges

parse translated challenges separately, without reference to the source

* chore(curriculum): add dashedName to English

* chore(curriculum): add dashedName to Chinese

* refactor: remove unused challenge property 'name'

* fix: relax dashedName requirement

* fix: stray tag

Remove stray `pre` tag from challenge file.

Signed-off-by: nhcarrigan <nhcarrigan@gmail.com>

Co-authored-by: nhcarrigan <nhcarrigan@gmail.com>
2021-01-12 19:31:00 -07:00

5.8 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
bd7158d8c442eddfaeb5bd0f 构建一个番茄时钟 3 301373 build-a-25--5-clock

--description--

目标:CodePen.io 上实现一个功能类似 https://codepen.io/freeCodeCamp/full/XpKrrW 的 App。

在满足以下需求并能通过所有测试的前提下,你可以根据自己的喜好来美化你的 app。

你可以使用 HTML、JavaScript、CSS、Bootstrap、SASS、React、Redux、jQuery 来完成这个挑战。但鉴于这个章节的学习内容与前端框架相关,推荐使用一款前端框架(比如 React来完成这个挑战不推荐你使用前面没有提到的技术否则风险自负。我们有计划新增其他前端框架课程例如 Angular 和 Vue不过目前还没有这些内容。我们会接受并尽力处理你在使用建议的技术栈过程中遇到的问题。编码愉快

需求 1 我应该能看到一个具有id="break-label"属性的元素,这个元素的内容应该是一个字符串(例如:"Break Length")。

需求 2 我应该能看到一个具有id="session-label"属性的元素,这个元素的内容应该是一个字符串(例如:"Session Length")。

需求 3 我应该能看到两个可以点击的元素,他们分别具有如下 idid="break-decrement"id="session-decrement"

需求 4 我应该能看到两个可以点击的元素,他们分别具有如下 idid="break-increment"id="session-increment"

需求 5 我应该能看到一个具有id="break-length"属性的元素,这个元素默认展示数值应该为 5加载后

需求 6 我应该能看到一个具有id="session-length"属性的元素,这个元素默认展示数值应该为 25加载后

需求 7 我应该能看到一个具有id="timer-label"属性的元素,这个元素包含一个表示当前状态的字符串(例如:"Session")。

需求 8 我应该能看到一个具有id="time-left"属性的元素。注意:暂停或者运行时,该元素的内容应始终以mm:ss格式显示(如 25:00

需求 9 我应该能看到一个具有id="start_stop"属性的可点击的元素。

需求 10 我应该能看到一个具有id="reset"属性的可点击的元素。

需求 11 当我点击 id 属性为reset的元素时,应该停止任何运行中的计时器,id="break-length"元素中的值应该重新回到5id="session-length"元素中的值应该重新回到 25id="time-left"元素应该重置为默认状态。

需求 12 当我点击 id 属性为break-decrement的元素时,id="break-length"元素的值应该减去 1且我应该能看到更新后的值。

需求 13 当我点击 id 属性为break-increment 的元素时,id="break-length"元素的值应该增加 1且我应该能看到更新后的值。

需求 14 当我点击 id 属性为session-decrement 的元素时,id="session-length"元素的值应该减去 1且我应该能看到更新后的值。

需求 15 当我点击 id 属性为session-increment 的元素时,id="session-length"元素的值应该增加 1且我应该能看到更新后的值。

需求 16 工作或者休息长度不应该可以设置为 <= 0 的值。

需求 17 工作或者休息长度比应该可以设置为 > 60 的值。

需求 18 当我首次点击具有id="start_stop"属性的元素时,计时器应该根据id="session-length"元素当前显示的值开始运行,即使该值已从原始值 25 递增过或递减过。

需求 19 如果计时器正在运行id 属性为time-left的元素应该以mm:ss的格式展示剩余的时间按1递减并且每秒更新一次显示的值

需求 20 如果计时器正在运行,当我点击id="start_stop"元素时,倒计时应该暂停。

需求 21 如果计时器已经暂停,当我点击id="start_stop"元素时,倒计时应该从暂停的时间点恢复运行。

需求 22 当一个工作倒计时结束注意计时器必须达到00:00并且新的倒计时开始运行时id 属性为timer-label的元素应该显示一个表示已经开始休息的字符串。

需求 23 当一个工作倒计时结束注意计时器必须达到00:00应该开始一个新的休息倒计时时间应该从id="break-length"元素中当前显示的值开始计算。

需求 24 当一个休息倒计时结束注意计时器必须达到00:00并且新的倒计时开始运行时id 属性为timer-label的元素应该显示一个表示已经开始工作的字符串。

需求 25 当一个休息倒计时结束注意计时器必须达到00:00应该开始一个新的工作倒计时时间应该从id="session-length"元素中当前显示的值开始计算。

需求 26 当一个倒计时结束注意计时器必须达到00:00应该播放一个表示时间到了的声音提示。这个提示音应该使用 HTML5 的audio标签并有一个id="beep"属性。

需求 27 具有id="beep"属性的音频元素时长应该至少有一秒。

需求 28 当点击 id 属性为reset的元素时id 属性为beep的音频元素必须停止播放并回到开头。

你可以 fork 这个 CodePen pen 项目 来构建你的项目。 或者你可以在任何你喜欢的环境中使用以下 CDN 链接来运行测试: https://gitcdn.link/repo/freeCodeCamp/testable-projects-fcc/master/build/bundle.js

一旦你完成了本项目并且该项目所有测试运行通过, 请提交项目的 URL。

--solutions--

// solution required