Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/yuriipohorilets/goit-js-hw-08

πŸ“š JS-HW-08 | Project infrastructure. Storage
https://github.com/yuriipohorilets/goit-js-hw-08

goit javascript npm storage

Last synced: about 2 months ago
JSON representation

πŸ“š JS-HW-08 | Project infrastructure. Storage

Awesome Lists containing this project

README

        

# Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π’Π΅Π±-Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ | goit-js-hw-08

## ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ°

- Π‘ΠΎΠ·Π΄Π°Π½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ `goit-js-hw-08`.
- ΠŸΡ€ΠΈ сдачС домашнСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ссылки: Π½Π° исходныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ
страницу Π½Π° `GitHub Pages`.
- ΠŸΡ€ΠΈ посСщСнии ΠΆΠΈΠ²ΠΎΠΉ страницы задания, Π² консоли Π½Π΅Ρ‚Ρƒ ошибок ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
- ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ собран с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ
[parcel-project-template](https://github.com/goitacademy/parcel-project-template).
- Код ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ `Prettier`.

## Π‘Ρ‚Π°Ρ€Ρ‚ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹

[Π‘ΠΊΠ°Ρ‡Π°ΠΉ стартовыС Ρ„Π°ΠΉΠ»Ρ‹](https://downgit.github.io/#/home?url=https:%2F%2Fgithub.com%2Fgoitacademy%2Fjavascript-homework%2Ftree%2Fmain%2Fv2%2F08%2Fsrc)
с Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, стилями ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ скриптов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ
задания. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉ ΠΈΡ… сСбС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΏΠ°ΠΏΠΊΡƒ `src` Π²
[parcel-project-template](https://github.com/goitacademy/parcel-project-template).

### Π—Π°Π΄Π°Π½ΠΈΠ΅ 1 - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° `SimpleLightbox`

Выполняй это Π·Π°Π΄Π°Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ»Π°Ρ… `01-gallery.html` ΠΈ `01-gallery.js`. Π Π°Π·Π±Π΅ΠΉ Π΅Π³ΠΎ Π½Π°
нСсколько ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡:

1. Π”ΠΎΠ±Π°Π²ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ [SimpleLightbox](https://simplelightbox.com/) ΠΊΠ°ΠΊ
Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ `npm` (ссылка Π½Π° CDN ΠΈΠ· Ρ‚Π²ΠΎΠ΅ΠΉ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹
большС Π½Π΅ Π½ΡƒΠΆΠ½Π°).
2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ свой JavaScript ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ домашнСй Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈ
Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±Ρ‹Π»Π° установлСна Ρ‡Π΅Ρ€Π΅Π· `npm`
(синтаксис import/export).

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ CSS ΠΊΠΎΠ΄ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Ρ‰Π΅
ΠΎΠ΄ΠΈΠ½ ΠΈΠΌΠΏΠΎΡ€Ρ‚, ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ описан Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

```
// Описан Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
import SimpleLightbox from "simplelightbox";
// Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ стилСй import
"simplelightbox/dist/simple-lightbox.min.css";
```

### Π—Π°Π΄Π°Π½ΠΈΠ΅ 2 - Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠ»Π΅Π΅Ρ€

Π’ HTML Π΅ΡΡ‚ΡŒ `` с Π²ΠΈΠ΄Π΅ΠΎ для Vimeo ΠΏΠ»Π΅Π΅Ρ€Π°. Напиши

скрипт ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя воспроизвСдСния Π²ΠΈΠ΄Π΅ΠΎ Π² локальноС
Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π²ΠΈΠ΄Π΅ΠΎ с этого
Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

```

```

Выполняй это Π·Π°Π΄Π°Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ»Π°Ρ… `02-video.html` ΠΈ `02-video.js`. Π Π°Π·Π±Π΅ΠΉ Π΅Π³ΠΎ Π½Π°
нСсколько ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡:

1. Ознакомься с
[Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ](https://github.com/vimeo/player.js/#vimeo-player-api)
Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Vimeo ΠΏΠ»Π΅Π΅Ρ€Π°.
2. Π”ΠΎΠ±Π°Π²ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΊΠ°ΠΊ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ‡Π΅Ρ€Π΅Π· `npm`.
3. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉ ΠΏΠ»Π΅Π΅Ρ€ Π² Ρ„Π°ΠΉΠ»Π΅ скрипта ΠΊΠ°ΠΊ это описано Π² сСкции
[pre-existing player](https://github.com/vimeo/player.js/#pre-existing-player),
Π½ΠΎ ΡƒΡ‡Ρ‚ΠΈ Ρ‡Ρ‚ΠΎ Ρƒ тСбя ΠΏΠ»Π΅Π΅Ρ€ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊΠ°ΠΊ npm ΠΏΠ°ΠΊΠ΅Ρ‚, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· CDN.
4. Π Π°Π·Π±Π΅Ρ€ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°
[on()](https://github.com/vimeo/player.js/#onevent-string-callback-function-void)
ΠΈ Π½Π°Ρ‡Π½ΠΈ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ событиС
[timeupdate](https://github.com/vimeo/player.js/#events) - ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
воспроизвСдСния.
5. Бохраняй врСмя воспроизвСдСния Π² локальноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. ΠŸΡƒΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ для
Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π±ΡƒΠ΄Π΅Ρ‚ строка `"videoplayer-current-time"`.
6. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ
[setCurrentTime()](https://github.com/vimeo/player.js/#setcurrenttimeseconds-number-promisenumber-rangeerrorerror)
для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ воспроизвСдСниС с сохранСнной ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.
7. Π”ΠΎΠ±Π°Π²ΡŒ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΠΈΠ±ΠΈΠ»ΠΎΡ‚Π΅ΠΊΡƒ
[lodash.throttle](https://www.npmjs.com/package/lodash.throttle) и сдСлай
Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ врСмя воспроизвСдСния обновлялось Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π΅ Ρ‡Π°Ρ‰Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π· Π²
сСкунду.

### Π—Π°Π΄Π°Π½ΠΈΠ΅ 3 - Ρ„ΠΎΡ€ΠΌΠ° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи

Π’ HTML Π΅ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Ρ„ΠΎΡ€ΠΌΡ‹. Напиши скрипт ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ значСния ΠΏΠΎΠ»Π΅ΠΉ
Π² локальноС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚.

```


Email



Message


Submit

```

Выполняй это Π·Π°Π΄Π°Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ»Π°Ρ… `03-feedback.html` ΠΈ `03-feedback.js`. Π Π°Π·Π±Π΅ΠΉ Π΅Π³ΠΎ
Π½Π° нСсколько ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡:

1. ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΠΉ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ событиС `input`, ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· записывай Π² локальноС
Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с полями `email` ΠΈ `message`, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… сохраняй Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅
значСния ΠΏΠΎΠ»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡ‹. ΠŸΡƒΡΡ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ для Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π±ΡƒΠ΄Π΅Ρ‚ строка
`"feedback-form-state"`.
2. ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ страницы провСряй состояниС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, ΠΈ Ссли Ρ‚Π°ΠΌ Π΅ΡΡ‚ΡŒ
сохранСнныС Π΄Π°Π½Π½Ρ‹Π΅, заполняй ΠΈΠΌΠΈ поля Ρ„ΠΎΡ€ΠΌΡ‹. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС поля Π΄ΠΎΠ»ΠΆΠ½Ρ‹
Π±Ρ‹Ρ‚ΡŒ пустыми.
3. ΠŸΡ€ΠΈ сабмитС Ρ„ΠΎΡ€ΠΌΡ‹ ΠΎΡ‡ΠΈΡ‰Π°ΠΉ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ поля Ρ„ΠΎΡ€ΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с
полями `email`, `message` ΠΈ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌΠΈ ΠΈΡ… значСниями Π² консоль.
4. Π‘Π΄Π΅Π»Π°ΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ обновлялось Π½Π΅ Ρ‡Π°Ρ‰Π΅ Ρ‡Π΅ΠΌ Ρ€Π°Π· Π² 500 миллисСкунд.
Для этого добавь Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ
[lodash.throttle](https://www.npmjs.com/package/lodash.throttle).