Skip to content
This repository has been archived by the owner on Aug 17, 2024. It is now read-only.

lordponchik/goit-js-hw-07

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Homework πŸ“‹

goit-js-hw-07


πŸ“š EN πŸ“š

Acceptance criteria

  • goit-js-hw-07 repository created.
  • In your submitted homework, there are two links: One to your source files and one to your working page on GitHub Pages.
  • During live page visits, there are no errors or warnings generated in the console.
  • Clear and descriptive names of variables and functions.
  • Code formatted with Prettier.

Start files

  • In the src folder, you will find start files with basic markup and ready-made styles. Copy them to your project. To do this, download this entire repository as an archive or use the DownGit service to download a separate folder from the repository.
  • In the gallery-items.js file, there is an array called galleryItems, which contains objects with information about Images: small (preview), original (large) and description. It has already been added to each of the project's JS files.

Task 1 - image gallery

Create a gallery with the ability to click on its items and view full size images in a modal window. Check out the demo video of the gallery.

gallery-demo.mp4

Do this task in the 01-gallery.html and 01-gallery.js files. Break it down into several subtasks:

  1. Creating and rendering markup from the galleryItems data array and provided gallery item template.
  2. Implementing delegation to ul.gallery and getting the url of a large image.
  3. Adding the script and styles of the modal window library basicLightbox. Use the jsdelivrCDN service and add links to the minified (.min) library files to your project.
  4. Opening a modal window by clicking on a gallery item. To do this, check out the documentation and examples.
  5. Replacing the value of the src attribute of the <img> element in a modal window before opening. Use the ready-made modal window markup with the image from the examples of the basicLightbox library.

Gallery item markup

The link to the original image must be stored in the source data attribute on the <img> element and specified in the link's href. Do not add any HTML tags or CSS classes other than those in this template.

<li 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>
</li>

Please note that the image is wrapped in a link, which means that, when clicked, the user will be redirected to another page by default. Disable this behavior by default.

Closing from keyboard

⚠️ The following features are optional, but they will be good for additional practice.

Add functionality for modal window closing upon pressing the Escape key. Make keyboard listening available only while the modal window is open. In the basicLightbox library, there is a method to close the modal window programmatically.

Task 2 - SimpleLightbox library

Create the same gallery as in the first task, but using the SimpleLightbox library, which will handle image clicks, modal opening and closing, and image scrolling with the keyboard.

simplelightbox-demo.mp4

It is necessary to slightly change the gallery card markup; use this template.

<li class="gallery__item">
   <a class="gallery__link" href="large-image.jpg">
      <img class="gallery__image" src="small-image.jpg" alt="Image description" />
   </a>
</li>

Do this task in the 02-lightbox.html and 02-lightbox.js files. Break it down into several subtasks:

  1. Creating and rendering markup from the galleryItems data array and provided gallery element template. Use the ready-made code from the first task.
  2. Adding the script and library styles using the cdnjs CDN service. You need to add links to two files: simple-lightbox.min.js and simple-lightbox.min.css.
  3. Library initialization after gallery items are created and added to ul.gallery. To do this, read the SimpleLightbox documentation - first of all, the Usage and Markup sections.
  4. Look in the documentation for the Options section and add an image caption display from the alt attribute. Let the caption be at the bottom and appear 250 milliseconds after image opening.


πŸ“š UK πŸ“š ⬆ Home ⬆

ΠšΡ€ΠΈΡ‚Π΅Ρ€Ρ–Ρ— ΠΏΡ€ΠΈΠΉΠΎΠΌΡƒ

  • Π‘Ρ‚Π²ΠΎΡ€Π΅Π½ΠΎ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€Ρ–ΠΉ goit-js-hw-07.
  • ΠŸΡ€ΠΈ Π·Π΄Π°Ρ‡Ρ– Π΄ΠΎΠΌΠ°ΡˆΠ½ΡŒΠΎΡ— Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ Ρ” Π΄Π²Π° посилання: Π½Π° Π²ΠΈΡ…Ρ–Π΄Π½Ρ– Ρ„Π°ΠΉΠ»ΠΈ Ρ‚Π° Ρ€ΠΎΠ±ΠΎΡ‡Ρƒ сторінку Π½Π° GitHub Pages.
  • ΠŸΡ€ΠΈ Π²Ρ–Π΄Π²Ρ–Π΄ΡƒΠ²Π°Π½Π½Ρ– ΠΆΠΈΠ²ΠΎΡ— сторінки завдання, Π² консолі Π½Π΅ΠΌΠ°Ρ” ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ Ρ‚Π° ΠΏΠΎΠΏΠ΅Ρ€Π΅Π΄ΠΆΠ΅Π½ΡŒ.
  • Π†ΠΌΠ΅Π½Π° Π·ΠΌΡ–Π½Π½ΠΈΡ… Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΉ Π·Ρ€ΠΎΠ·ΡƒΠΌΡ–Π»Ρ–, описові.
  • Код Π²Ρ–Π΄Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ²Π°Π½ΠΎ Prettier.

CΡ‚Π°Ρ€Ρ‚ΠΎΠ²Ρ– Ρ„Π°ΠΉΠ»ΠΈ

Π‘ΠΊΠ°Ρ‡Π°ΠΉ стартові Ρ„Π°ΠΉΠ»ΠΈ Π· базовою Ρ€ΠΎΠ·ΠΌΡ–Ρ‚ΠΊΠΎΡŽ, Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΌΠΈ стилями Ρ‚Π° ΠΏΡ–Π΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ скриптів для ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ завдання. Π‘ΠΊΠΎΠΏΡ–ΡŽΠΉ Ρ—Ρ… собі Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π£ Ρ„Π°ΠΉΠ»Ρ– gallery-items.js Ρ” масив galleryItems, який ΠΌΡ–ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±'Ρ”ΠΊΡ‚ΠΈ Π· Ρ–Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†Ρ–Ρ”ΡŽ ΠΏΡ€ΠΎ зобраТСння: малСнькС (ΠΏΡ€Π΅Π²'ю), ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»ΡŒΠ½Π΅ (Π²Π΅Π»ΠΈΠΊΠ΅) Ρ‚Π° опис. Ми Π²ΠΆΠ΅ ΠΏΡ–Π΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ ΠΉΠΎΠ³ΠΎ Π΄ΠΎ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ Ρ–Π· JS-Ρ„Π°ΠΉΠ»Ρ–Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

Завдання 1 - галСрСя Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΡŒ

Π‘Ρ‚Π²ΠΎΡ€ΠΈ Π³Π°Π»Π΅Ρ€Π΅ΡŽ Π· ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ–ΡΡ‚ΡŽ ΠΊΠ»Ρ–ΠΊΠ° Π·Π° Ρ—Ρ— Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ‚Π° пСрСгляду ΠΏΠΎΠ²Π½ΠΎΡ€ΠΎΠ·ΠΌΡ–Ρ€Π½ΠΎΠ³ΠΎ зобраТСння Ρƒ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ–ΠΊΠ½Ρ–. Подивися Π΄Π΅ΠΌΠΎ Π²Ρ–Π΄Π΅ΠΎ Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ Π³Π°Π»Π΅Ρ€Π΅Ρ—.

gallery-demo.mp4

Π’ΠΈΠΊΠΎΠ½ΡƒΠΉ Ρ†Π΅ завдання Ρƒ Ρ„Π°ΠΉΠ»Π°Ρ… 01-gallery.html Ρ‚Π° 01-gallery.js. Π ΠΎΠ·Π±ΠΈΠΉ ΠΉΠΎΠ³ΠΎ Π½Π° ΠΊΡ–Π»ΡŒΠΊΠ° ΠΏΡ–Π΄Π·Π°Π΄Π°Ρ‡:

  1. БтворСння Ρ‚Π° Ρ€Π΅Π½Π΄Π΅Ρ€ Ρ€ΠΎΠ·ΠΌΡ–Ρ‚ΠΊΠΈ Π·Π° масивом Π΄Π°Π½ΠΈΡ… galleryItems Ρ‚Π° Π½Π°Π΄Π°Π½ΠΈΠΉ шаблон Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π³Π°Π»Π΅Ρ€Π΅Ρ—.
  2. РСалізація дСлСгування Π½Π° ul.gallery Ρ‚Π° отримання url Π²Π΅Π»ΠΈΠΊΠΎΠ³ΠΎ зобраТСння.
  3. ΠŸΡ–Π΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ скрипту Ρ‚Π° стилів Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ модального Π²Ρ–ΠΊΠ½Π° basicLightbox. Використовуй CDN сСрвіс jsdelivr Ρ‚Π° Π΄ΠΎΠ΄Π°ΠΉ Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ посилання Π½Π° ΠΌΡ–Π½Ρ–Ρ„Ρ–ΠΊΠΎΠ²Π°Π½Ρ– (.min) Ρ„Π°ΠΉΠ»ΠΈ Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ.
  4. Відкриття модального Π²Ρ–ΠΊΠ½Π° Π½Π° ΠΊΠ»Ρ–ΠΊΡƒ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ– Π³Π°Π»Π΅Ρ€Π΅Ρ—. Для Ρ†ΡŒΠΎΠ³ΠΎ ознайомся Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ”ΡŽ Ρ‚Π° ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π°ΠΌΠΈ.
  5. Π—Π°ΠΌΡ–Π½Π° значСння Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ src Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ <img> Ρƒ ΠΌΠΎΠ΄Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Π²Ρ–ΠΊΠ½Ρ– ΠΏΠ΅Ρ€Π΅Π΄ відкриттям. Використовуй Π³ΠΎΡ‚ΠΎΠ²Ρƒ Ρ€ΠΎΠ·ΠΌΡ–Ρ‚ΠΊΡƒ модального Π²Ρ–ΠΊΠ½Π° Ρ–Π· зобраТСнням Π· ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ–Π² Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ basicLightbox.

Π ΠΎΠ·ΠΌΡ–Ρ‚ΠΊΠ° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π³Π°Π»Π΅Ρ€Π΅Ρ—

Посилання Π½Π° ΠΎΡ€ΠΈΠ³Ρ–Π½Π°Π»ΡŒΠ½Π΅ зобраТСння ΠΏΠΎΠ²ΠΈΠ½Π½Π΅ збСрігатися Π² data-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ– source Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ– <img>, Ρ– вказуватися Π² href посилання. НС Π΄ΠΎΠ΄Π°ΠΉ Ρ–Π½ΡˆΡ– HTML Ρ‚Π΅Π³ΠΈ Π°Π±ΠΎ CSS класи, ΠΊΡ€Ρ–ΠΌ Ρ‚ΠΈΡ…, Ρ‰ΠΎ Ρ” Π² Ρ†ΡŒΠΎΠΌΡƒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ–.

<li 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>
</li>

Π—Π²Π΅Ρ€Π½Ρ–Ρ‚ΡŒ ΡƒΠ²Π°Π³Ρƒ Π½Π° Ρ‚Π΅, Ρ‰ΠΎ зобраТСння ΠΎΠ±Π΅Ρ€Π½Π΅Π½Π΅ Π½Π° посилання, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΊΠ»Ρ–ΠΊΡƒ ΠΏΠΎ Π—Π° замовчуванням користувач Π±ΡƒΠ΄Π΅ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΎ Π½Π° Ρ–Π½ΡˆΡƒ сторінку. Π—Π°Π±ΠΎΡ€ΠΎΠ½ΠΈ Ρ†Π΅ ΠΏΠΎΠ²Π΅Π΄Ρ–Π½ΠΊΠ° Π·Π° умовчанням.

Закриття Π· ΠΊΠ»Π°Π²Ρ–Π°Ρ‚ΡƒΡ€ΠΈ

⚠️ Наступний Ρ„ΡƒΠ½ΠΊΡ†Ρ–ΠΎΠ½Π°Π» Π½Π΅ ΠΎΠ±ΠΎΠ²'язковий ΠΏΡ€ΠΈ Π·Π΄Π°Ρ‡Ρ– завдання, Π°Π»Π΅ Π±ΡƒΠ΄Π΅ Π³Π°Ρ€Π½ΠΎΡŽ Π΄ΠΎΠ΄Π°Ρ‚ΠΊΠΎΠ²ΠΎΡŽ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΡŽ.

Π”ΠΎΠ΄Π°ΠΉ закриття модального Π²Ρ–ΠΊΠ½Π° натисканням ΠΊΠ½ΠΎΠΏΠΊΠΈ Escape. Π—Ρ€ΠΎΠ±ΠΈ Ρ‚Π°ΠΊ, Ρ‰ΠΎΠ± прослуховування ΠΊΠ»Π°Π²Ρ–Π°Ρ‚ΡƒΡ€ΠΈ Π±ΡƒΠ»ΠΎ Ρ‚Ρ–Π»ΡŒΠΊΠΈ ΠΏΠΎΠΊΠΈ Ρ‰ΠΎ Π²Ρ–Π΄ΠΊΡ€ΠΈΡ‚ΠΎ модальнС Π²Ρ–ΠΊΠ½ΠΎ. Біля Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ basicLightbox Ρ” ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎΠ³ΠΎ закриття модального Π²Ρ–ΠΊΠ½Π°.

Завдання 2 - Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠ° SimpleLightbox

Π—Ρ€ΠΎΠ±ΠΈ Ρ‚Π°ΠΊΡƒ саму Π³Π°Π»Π΅Ρ€Π΅ΡŽ як Ρƒ ΠΏΠ΅Ρ€ΡˆΠΎΠΌΡƒ Π·Π°Π²Π΄Π°Π½Π½Ρ–, Π°Π»Π΅ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΡƒ SimpleLightbox, яка Π²Ρ–Π·ΡŒΠΌΠ΅ Π½Π° сСбС ΠΎΠ±Ρ€ΠΎΠ±ΠΊΡƒ ΠΊΠ»Ρ–ΠΊΡ–Π² Π·Π° зобраТСннями, відкриття Ρ‚Π° закриття модального Π²Ρ–ΠΊΠ½Π°, Π° Ρ‚Π°ΠΊΠΎΠΆ прогортання Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΡŒ Π·Π° допомогою ΠΊΠ»Π°Π²Ρ–Π°Ρ‚ΡƒΡ€ΠΈ.

Подивися Π΄Π΅ΠΌΠΎ Π²Ρ–Π΄Π΅ΠΎ Ρ€ΠΎΠ±ΠΎΡ‚ΠΈ Π³Π°Π»Π΅Ρ€Π΅Ρ— Ρ–Π· ΠΏΡ–Π΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎΡŽ Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΎΡŽ.

simplelightbox-demo.mp4

НСобхідно Ρ‚Ρ€ΠΎΡ…ΠΈ Π·ΠΌΡ–Π½ΠΈΡ‚ΠΈ Ρ€ΠΎΠ·ΠΌΡ–Ρ‚ΠΊΡƒ ΠΊΠ°Ρ€Ρ‚ΠΊΠΈ Π³Π°Π»Π΅Ρ€Π΅Ρ— Π·Π° допомогою Ρ†ΡŒΠΎΠ³ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ.

<li class="gallery__item">
   <a class="gallery__link" href="large-image.jpg">
      <img class="gallery__image" src="small-image.jpg" alt="Image description" />
   </a>
</li>

Π’ΠΈΠΊΠΎΠ½ΡƒΠΉ Ρ†Π΅ завдання Ρƒ Ρ„Π°ΠΉΠ»Π°Ρ… 02-lightbox.html Ρ‚Π° 02-lightbox.js. Π ΠΎΠ·Π±ΠΈΠΉ ΠΉΠΎΠ³ΠΎ Π½Π° ΠΊΡ–Π»ΡŒΠΊΠ° ΠΏΡ–Π΄Π·Π°Π΄Π°Ρ‡:

  1. БтворСння Ρ‚Π° Ρ€Π΅Π½Π΄Π΅Ρ€ Ρ€ΠΎΠ·ΠΌΡ–Ρ‚ΠΊΠΈ Π·Π° масивом Π΄Π°Π½ΠΈΡ… galleryItems Ρ‚Π° Π½Π°Π΄Π°Π½ΠΈΠΉ шаблон Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π³Π°Π»Π΅Ρ€Π΅Ρ—. Використовуй Π³ΠΎΡ‚ΠΎΠ²ΠΈΠΉ ΠΊΠΎΠ΄ Ρ–Π· ΠΏΠ΅Ρ€ΡˆΠΎΠ³ΠΎ завдання.
  2. ΠŸΡ–Π΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ скрипту Ρ‚Π° стилів Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΈΠΊΠΎΡ€ΠΈΡΡ‚ΠΎΠ²ΡƒΡŽΡ‡ΠΈ CDN сСрвис cdnjs. НСобхідно Π΄ΠΎΠ΄Π°Ρ‚ΠΈ посилання Π½Π° Π΄Π²Π° Ρ„Π°ΠΉΠ»ΠΈ: simple-lightbox.min.js Ρ‚Π° simple-lightbox.min.css.
  3. Ініціалізація Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ після Ρ‚ΠΎΠ³ΠΎ, як Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ Π³Π°Π»Π΅Ρ€Π΅Ρ— створСні Ρ‚Π° Π΄ΠΎΠ΄Π°Π½Ρ– Π² ul.gallery. Для Ρ†ΡŒΠΎΠ³ΠΎ ознайомся Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ”ΡŽ SimpleLightbox - насампСрСд сСкції Β«UsageΒ» Ρ‚Π° Β«MarkupΒ».
  4. Подивись Ρƒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†Ρ–Ρ— ΡΠ΅ΠΊΡ†Ρ–ΡŽ Β«OptionsΒ» Ρ‚Π° Π΄ΠΎΠ΄Π°ΠΉ відобраТСння підписів Π΄ΠΎ Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΡŒ Π· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρƒ alt. НСхай підпис Π±ΡƒΠ΄Π΅ Π·Π½ΠΈΠ·Ρƒ Ρ– Π·'ΡΠ²Π»ΡΡ”Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· 250 мілісСкунд після відкриття зобраТСння.


πŸ“š RU πŸ“š ⬆ Home ⬆

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

  • Π‘ΠΎΠ·Π΄Π°Π½ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ goit-js-hw-07.
  • ΠŸΡ€ΠΈ сдачС домашнСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ ссылки: Π½Π° исходныС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ страницу Π½Π° GitHub Pages.
  • ΠŸΡ€ΠΈ посСщСнии ΠΆΠΈΠ²ΠΎΠΉ страницы задания, Π² консоли Π½Π΅Ρ‚Ρƒ ошибок ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ.
  • ИмСна ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ понятныС, ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅.
  • Код ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ Prettier.

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

Π‘ΠΊΠ°Ρ‡Π°ΠΉ стартовыС Ρ„Π°ΠΉΠ»Ρ‹ с Π±Π°Π·ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ стилями ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ скриптов для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ задания. Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉ ΠΈΡ… сСбС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚.

Π’ Ρ„Π°ΠΉΠ»Π΅ gallery-items.js Π΅ΡΡ‚ΡŒ массив galleryItems, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ с ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ изобраТСниях: малСнькоС (ΠΏΡ€Π΅Π²ΡŒΡŽ), ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ (большоС) ΠΈ описаниС. ΠœΡ‹ ΡƒΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π΅Π³ΠΎ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΈΠ· JS-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Π—Π°Π΄Π°Π½ΠΈΠ΅ 1 - галСрСя ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ

Π‘ΠΎΠ·Π΄Π°ΠΉ Π³Π°Π»Π΅Ρ€Π΅ΡŽ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΊΠ»ΠΈΠΊΠ° ΠΏΠΎ Π΅Ρ‘ элСмСнтам ΠΈ просмотра ΠΏΠΎΠ»Π½ΠΎΡ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΠ³ΠΎ изобраТСния Π² модальном ΠΎΠΊΠ½Π΅. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈ Π΄Π΅ΠΌΠΎ Π²ΠΈΠ΄Π΅ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π³Π°Π»Π΅Ρ€Π΅ΠΈ.

gallery-demo.mp4

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

  1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ массиву Π΄Π°Π½Π½Ρ‹Ρ… galleryItems ΠΈ прСдоставлСнному ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ элСмСнта Π³Π°Π»Π΅Ρ€Π΅ΠΈ.
  2. РСализация дСлСгирования Π½Π° ul.gallery ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ url большого изобраТСния.
  3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ скрипта ΠΈ стилСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ модального ΠΎΠΊΠ½Π° basicLightbox. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ CDN сСрвис jsdelivr ΠΈ добавь Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ссылки Π½Π° ΠΌΠΈΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (.min) Ρ„Π°ΠΉΠ»Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
  4. ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ модального ΠΎΠΊΠ½Π° ΠΏΠΎ ΠΊΠ»ΠΈΠΊΡƒ Π½Π° элСмСнтС Π³Π°Π»Π΅Ρ€Π΅ΠΈ. Для этого ознакомься с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.
  5. Π—Π°ΠΌΠ΅Π½Π° значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° src элСмСнта <img> Π² модальном ΠΎΠΊΠ½Π΅ ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ модального ΠΎΠΊΠ½Π° с ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ basicLightbox.

Π Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° элСмСнта Π³Π°Π»Π΅Ρ€Π΅ΠΈ

Бсылка Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² data-Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π΅ source Π½Π° элСмСнтС <img>, ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² href ссылки. НС добавляй Π΄Ρ€ΡƒΠ³ΠΈΠ΅ HTML Ρ‚Π΅Π³ΠΈ ΠΈΠ»ΠΈ CSS классы ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² этом шаблонС.

<li 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>
</li>

ΠžΠ±Ρ€Π°Ρ‚ΠΈ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΠΎ Π² ссылку, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ ΠΏΡ€ΠΈ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ страницу. Π—Π°ΠΏΡ€Π΅Ρ‚ΠΈ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

⚠️ Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π½Π΅ обязатСлСн ΠΏΡ€ΠΈ сдачС задания, Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ.

Π”ΠΎΠ±Π°Π²ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ модального ΠΎΠΊΠ½Π° ΠΏΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΡŽ клавиши Escape. Π‘Π΄Π΅Π»Π°ΠΉ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ Π±Ρ‹Π»ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠΊΠ° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ модальноС ΠΎΠΊΠ½ΠΎ. Π£ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ basicLightbox Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ закрытия модального ΠΎΠΊΠ½Π°.

Π—Π°Π΄Π°Π½ΠΈΠ΅ 2 - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° SimpleLightbox

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

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈ Π΄Π΅ΠΌΠΎ Π²ΠΈΠ΄Π΅ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π³Π°Π»Π΅Ρ€Π΅ΠΈ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ.

simplelightbox-demo.mp4

НСобходимо Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΊΠ°Ρ€Ρ‚ΠΎΡ‡ΠΊΠΈ Π³Π°Π»Π΅Ρ€Π΅ΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ этот шаблон.

<li class="gallery__item">
   <a class="gallery__link" href="large-image.jpg">
      <img class="gallery__image" src="small-image.jpg" alt="Image description" />
   </a>
</li>

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

  1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π΅Π½Π΄Π΅Ρ€ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ массиву Π΄Π°Π½Π½Ρ‹Ρ… galleryItems ΠΈ прСдоставлСнному ΡˆΠ°Π±Π»ΠΎΠ½Ρƒ элСмСнта Π³Π°Π»Π΅Ρ€Π΅ΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ задания.
  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ скрипта ΠΈ стилСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ CDN сСрвис cdnjs. НСобходимо Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ссылки Π½Π° Π΄Π²Π° Ρ„Π°ΠΉΠ»Π°: simple-lightbox.min.js ΠΈ simple-lightbox.min.css.
  3. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ элСмСнты Π³Π°Π»Π΅Ρ€Π΅ΠΈ созданы ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π² ul.gallery. Для этого ознакомься с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ SimpleLightbox - Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сСкции Β«UsageΒ» ΠΈ Β«MarkupΒ».
  4. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΡΠ΅ΠΊΡ†ΠΈΡŽ Β«OptionsΒ» ΠΈ добавь ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ подписСй ΠΊ изобраТСниям ΠΈΠ· Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° alt. ΠŸΡƒΡΡ‚ΡŒ подпись Π±ΡƒΠ΄Π΅Ρ‚ снизу ΠΈ появляСтся Ρ‡Π΅Ρ€Π΅Π· 250 миллисСкунд послС открытия изобраТСния.