- Створено репозиторій
goit-js-hw-07. - Домашня робота містить два посилання: на вихідні файли і робочу сторінку на
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 мілісекунд після відкриття зображення.