39 lines
5.7 KiB
Markdown
39 lines
5.7 KiB
Markdown
---
|
||
id: 587d7dbc367417b2b2512bae
|
||
title: Build a Drum Machine
|
||
isRequired: true
|
||
challengeType: 3
|
||
videoUrl: ''
|
||
localeTitle: Построение барабанной машины
|
||
---
|
||
|
||
## Description
|
||
<section id="description"> <strong>Цель.</strong> Создайте приложение <a href="https://codepen.io" target="_blank">CodePen.io</a> , функционально похожее на это: <a href="https://codepen.io/freeCodeCamp/full/MJyNMd" target="_blank">https://codepen.io/freeCodeCamp/full/MJyNMd</a> . Выполните приведенные здесь <a href="https://en.wikipedia.org/wiki/User_story" target="_blank">истории пользователей</a> и получите все тесты для прохождения. Дайте ему свой личный стиль. Вы можете использовать любое сочетание HTML, JavaScript, CSS, Bootstrap, SASS, React, Redux и jQuery для завершения этого проекта. Вы должны использовать фреймворк frontend (например, React), потому что этот раздел посвящен изучению интерфейсных фреймворков. Дополнительные технологии, не перечисленные выше, не рекомендуются, и использование их на свой страх и риск. Мы смотрим на поддержку других интерфейсных фреймворков, таких как Angular и Vue, но в настоящее время они не поддерживаются. Мы примем и попытаемся исправить все отчеты о проблемах, которые используют предлагаемый стек технологий для этого проекта. Счастливое кодирование! <strong>User Story # 1:</strong> Я должен видеть внешний контейнер с соответствующим <code>id="drum-machine"</code> который содержит все остальные элементы. <strong>User Story # 2:</strong> Внутри <code>#drum-machine</code> я вижу элемент с соответствующим <code>id="display"</code> . <strong>User Story # 3:</strong> В <code>#drum-machine</code> я могу увидеть 9 кликабельных элементов ударной площадки, каждая из которых имеет имя класса <code>drum-pad</code> , уникальный идентификатор, который описывает аудиоклип, который будет настроен на ударную площадку для запуска, и внутренний текст, который соответствует одной из следующих клавиш на клавиатуре: Q, W, E, A, S, D, Z, X, C. Барабанные площадки должны быть в этом порядке. <strong>User Story # 4:</strong> внутри каждого <code>.drum-pad</code> должен быть <code>audio</code> элемент HTML5, который имеет атрибут <code>src</code> указывающий на аудиоклип, имя класса <code>clip</code> и идентификатор, соответствующий внутреннему тексту его родительского <code>.drum-pad</code> (например, <code>id="Q"</code> , <code>id="W"</code> , <code>id="E"</code> и т. д.). <strong>User Story # 5:</strong> Когда я нажимаю элемент <code>.drum-pad</code> , должен запускаться аудиоклип, содержащийся в его дочернем <code>audio</code> элементе. <strong>User Story # 6:</strong> Когда я <code>.drum-pad</code> клавишу триггера, связанную с каждым <code>.drum-pad</code> , должен запускаться аудиоклип, содержащийся в его дочернем <code>audio</code> элементе (например, нажатие клавиши Q должно запускать ударную панель, содержащую строку «Q», нажатие клавиши W должно запускать ударную панель, содержащую строку «W» и т. д.). <strong>User Story # 7:</strong> Когда <code>.drum-pad</code> , строка, описывающая связанный аудиоклип, отображается как внутренний текст элемента <code>#display</code> (каждая строка должна быть уникальной). Вы можете создать свой проект, <a href="http://codepen.io/freeCodeCamp/pen/MJjpwO" target="_blank">нажимая эту ручку CodePen</a> . Или вы можете использовать эту ссылку CDN для запуска тестов в любой среде: <code>https://cdn.freecodecamp.org/testable-projects-fcc/v1/bundle.js</code> Как только вы закончите, отправьте URL-адрес своей рабочей проект с прохождением всех его тестов. Не забудьте использовать метод <a href="https://forum.freecodecamp.org/t/how-to-get-help-when-you-are-stuck/19514" target="_blank">Read-Search-Ask,</a> если вы застряли. </section>
|
||
|
||
## Instructions
|
||
<section id="instructions">
|
||
</section>
|
||
|
||
## Tests
|
||
<section id='tests'>
|
||
|
||
```yml
|
||
tests: []
|
||
|
||
```
|
||
|
||
</section>
|
||
|
||
## Challenge Seed
|
||
<section id='challengeSeed'>
|
||
|
||
</section>
|
||
|
||
## Solution
|
||
<section id='solution'>
|
||
|
||
```js
|
||
// solution required
|
||
```
|
||
</section>
|