--- id: bd7158d8c442eddfaeb5bd0f title: Build a Pomodoro Clock isRequired: true challengeType: 3 videoUrl: '' localeTitle: 建立一个番茄钟 --- ## Description
目标:构建一个功能类似于此的CodePen.io应用程序: https //codepen.io/freeCodeCamp/full/XpKrrW 。完成以下用户故事并通过所有测试。给它你自己的个人风格。您可以使用HTML,JavaScript,CSS,Bootstrap,SASS,React,Redux和jQuery的任意组合来完成此项目。您应该使用前端框架(例如React),因为本节是关于学习前端框架的。不建议使用上面未列出的其他技术,使用它们的风险由您自行承担。我们正在寻求支持其他前端框架,如Angular和Vue,但目前不支持它们。我们将接受并尝试修复所有使用建议的技术堆栈的问题报告。快乐的编码! 用户故事#1:我可以看到一个id="break-label"的元素,其中包含一个字符串(例如“Break Length”)。 用户故事#2:我可以看到一个id="session-label"的元素,其中包含一个字符串(例如“Session Length”)。 用户故事#3:我可以看到两个具有相应ID的可点击元素: id="break-decrement"id="session-decrement"用户故事#4:我可以看到两个具有相应ID的可点击元素: id="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"应该返回到25,并且id="time-left"的元素应该重置为它的默认状态。 用户故事#12:当我单击id为break-decrement的元素时, id="break-length"的值会减1,我可以看到更新后的值。 用户故事#13:当我单击id为break-increment的元素时, id="break-length"的值会增加1,我可以看到更新后的值。 用户故事#14:当我单击session-decrement id的元素时, id="session-length"的值减1,我可以看到更新后的值。 用户故事#15:当我单击session-increment为id的元素时, id="session-length"的值会增加1,我可以看到更新后的值。 用户故事#16:我不能将会话或休息长度设置为<= 0. 用户故事#17:我不能将会话或休息时间设置为> 60. 用户故事#18:当我首先单击id="start_stop"的元素,计时器应该从当前显示在id="session-length"的值开始运行,即使该值已经从原始值25递增或递减。 用户故事#19 :如果计时器正在运行,则id为time-left的元素应以mm:ss格式显示剩余时间(递减值1并每1000ms更新一次显示)。 用户故事#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"的音频元素必须为1秒或更长。 用户故事#28: id为beep的音频元素必须停止播放,并在单击具有reset id的元素时重绕到开头。您可以通过分叉此CodePen笔来构建项目。或者您可以使用此CDN链接在您喜欢的任何环境中运行测试: https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.jshttps://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js完成后,将URL提交给您的工作通过所有测试的项目。如果卡住,请记住使用Read-Search-Ask方法。
## Instructions
## Tests
```yml tests: [] ```
## Challenge Seed
## Solution
```js // solution required ```