- Створено репозиторій
goit-js-finalproject
. - Фiнальний проєкт містить два посилання: на вихідні файли і робочу сторінку на
GitHub Pages
. - В консолі відсутні помилки і попередження під час відкриття живої сторінки завдання.
- Імена змінних і функцій - зрозумілі та описові.
- Код відформатований за допомогою
Prettier
.
- У папці src знайдеш стартові файли з базовою розміткою і готовими стилями. Скопіюй їх собі у проект. Для цього завантаж цей репозиторій як архів або використовуй сервіс DownGit для завантаження окремої папки з репозиторія.
- Файл
gallery-items.js
містить масивgalleryItems
, який містить об'єкти з інформацією про зображення: маленьке (прев`ю), оригінальне (велике) і опис. Ми вже підключили його до кожного з JS-файлів проекту.
Створи галерею з можливістю кліку по її елементах і перегляду повнорозмірного зображення у модальному вікні. Подивися демо відео роботи галереї.
gallery-demo.mp4
Виконуй це завдання у файлах 01-gallery.html
і 01-gallery.js
. Розбий його на
декілька підзавдань:
- Створення і рендер розмітки на підставі масиву даних
galleryItems
і наданого шаблону елемента галереї. - Реалізація делегування на
div.gallery
і отриманняurl
великого зображення. - Підключення скрипту і стилів бібліотеки модального вікна
basicLightbox. Використовуй
CDN сервіс jsdelivr
і додай у проект посилання на мініфіковані (
.min
) файли бібліотеки. - Відкриття модального вікна по кліку на елементі галереї. Для цього ознайомся з документацією і прикладами.
- Заміна значення атрибута
src
елемента<img>
в модальному вікні перед відкриттям. Використовуй готову розмітку модального вікна із зображенням з прикладів бібліотеки basicLightbox.
Посилання на оригінальне зображення повинно зберігатися в data-атрибуті source
на елементі <img>
, і вказуватися в href
посилання. Не додавай інші HTML теги
або CSS класи, крім тих, що містяться в цьому шаблоні.
<div class="gallery__item">
<a class="gallery__link" href="large-image.jpg">
<img
class="gallery__image"
src="small-image.jpg"
data-source="large-image.jpg"
alt="Image description"
/>
</a>
</div>
Зверни увагу на те, що зображення обгорнуте посиланням, отже по кліку за замовчуванням користувач буде перенаправлений на іншу сторінку. Заборони цю поведінку за замовчуванням.
⚠️ Наступний функціонал не обов'язковий для здавання завдання, але буде хорошою додатковою практикою.
Додай закриття модального вікна після натискання клавіші Escape
. Зроби так,
щоб прослуховування клавіатури було тільки доти, доки відкрите модальне вікно.
Бібліотекаи basicLightbox містить
метод для програмного закриття модального вікна.
Зроби таку саму галерею як в першому завданні, але використовуючи бібліотеку SimpleLightbox, яка візьме на себе обробку кліків по зображеннях, відкриття і закриття модального вікна, а також гортання зображень за допомогою клавіатури.
simplelightbox-demo.mp4
Необхідно трохи змінити розмітку картки галереї, використовуй цей шаблон.
<a class="gallery__item" href="large-image.jpg">
<img class="gallery__image" src="small-image.jpg" alt="Image description" />
</a>
Виконуй це завдання у файлах 02-lightbox.html
і 02-lightbox.js
. Розбий його
на декілька підзавдань:
- Створення і рендер розмітки на підставі масиву даних
galleryItems
і наданого шаблону елемента галереї. Використовуй готовий код з першого завдання. - Підключення скрипту і стилів бібліотеки, використовуючи
CDN сервіс cdnjs. Необхідно
додати посилання на два файли:
simple-lightbox.min.js
іsimple-lightbox.min.css
. - Ініціалізація бібліотеки після створення і додання елементів галереї у
div.gallery
. Для цього ознайомся з документацією SimpleLightbox - насамперед секції «Usage» і «Markup». - Подивися в документації секцію «Options» і додай відображення підписів до
зображень з атрибута
alt
. Нехай підпис буде знизу і з'являється через 250 мілісекунд після відкриття зображення.