Advertisement
Guest User

Untitled

a guest
Jul 9th, 2024
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.81 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.  
  4. <head>
  5.     <meta charset="UTF-8">
  6.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7.     <title>Gallery</title>
  8.     <style>
  9.         /* Стили для всплывающего элемента */
  10.         .popup {
  11.             position: fixed;
  12.             top: 50%;
  13.             left: 50%;
  14.             transform: translate(-50%, -50%);
  15.             background: rgb(192, 101, 101);
  16.             padding: 10px;
  17.             z-index: 1;
  18.             display: none;
  19.         }
  20.  
  21.         .popup img {
  22.             max-width: 100%;
  23.             max-height: 100%;
  24.         }
  25.  
  26.         img {
  27.             max-height: 400px; /* Максимальная высота изображения */
  28.             height: auto; /* Автоматический расчет высоты для сохранения пропорций */
  29.             width: 25%;
  30.             object-fit: cover; /* Поддержка соотношения сторон без растягивания */
  31.         }
  32.     </style>
  33. </head>
  34.  
  35. <body>
  36.  
  37.     <!-- HTML-разметка для изображений -->
  38.     <img src="abu2.jpg" class="gallery-img" alt="Image 1">
  39.     <img src="abu1.png" class="gallery-img" alt="Image 2">
  40.     <!-- Добавьте другие изображения по вашему выбору -->
  41.  
  42.     <!-- Всплывающий элемент для увеличенной картинки -->
  43.     <div class="popup" id="popup">
  44.         <img src="" alt="Popup Image" id="popup-img">
  45.     </div>
  46.  
  47.     <script>
  48.         const galleryImages = document.querySelectorAll('.gallery-img');
  49.         const popup = document.getElementById('popup');
  50.         const popupImg = document.getElementById('popup-img');
  51.  
  52.         let scale = 1; // начальный масштаб
  53.         galleryImages.forEach(img => {
  54.             img.addEventListener('click', () => {
  55.                 scale = 1;
  56.                 popup.style.display = 'block';
  57.                 popupImg.src = img.src;
  58.                 popupImg.style.transform = `scale(${scale})`;
  59.             });
  60.         });
  61.  
  62.         popup.addEventListener('click', () => {
  63.             popup.style.display = 'none';
  64.         });
  65.  
  66.         const scaleStep = 0.5; // шаг изменения масштаба
  67.         scale = 1;
  68.         // Обработчик события прокрутки колесика мыши
  69.         popup.addEventListener('wheel', (event) => {
  70.             event.preventDefault();
  71.             scale += event.deltaY > 0 ? -scaleStep : scaleStep; // изменение масштаба в зависимости от направления прокрутки
  72.             scale = Math.max(0.5, Math.min(5, scale));
  73.             popupImg.style.transform = `scale(${scale})`;
  74.         });
  75.     </script>
  76.  
  77. </body>
  78.  
  79. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement