Guest User

Untitled

a guest
Dec 19th, 2024
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 11.29 KB | None | 0 0
  1. <html lang="ru"><head>
  2.     <meta charset="UTF-8">
  3.     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  4.     <title> Планшет для эскизов "Тенистая аллея" 300 г/м2 A5 14.8 х 21 см склейка с одной стороны 18 л. ПЛ-0526 </title>
  5.     <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
  6.     <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  7.     <script src="/static/js/base.js"></script>
  8.     <link rel="stylesheet" href="/static/css/base.css">
  9.    
  10.     <style>
  11.         .slider-container {
  12.             display: flex;
  13.             flex-direction: column;
  14.             justify-content: space-between;
  15.             width: 200px; /* Уменьшение ширины */
  16.             height: 350px; /* Уменьшение высоты */
  17.             overflow: hidden;
  18.             margin: 20px auto; /* Можно также уменьшить отступы */
  19.             position: relative;
  20.             /* border: 2px solid #ddd; */
  21.             border-radius: 8px;
  22.         }
  23.  
  24.         .slider-track {
  25.             display: flex;
  26.             flex-direction: column;
  27.             position: absolute;
  28.             top: 0;
  29.             transition: transform 0.4s ease;
  30.         }
  31.  
  32.         .slider-track img {
  33.             width: 200px; /* Подгоняем под ширину контейнера */
  34.             height: 150px; /* Устанавливаем фиксированную высоту для изображений */
  35.             border-bottom: 2px solid #ddd;
  36.         }
  37.  
  38.         .slider-btn {
  39.             position: relative;
  40.             left: 51%;
  41.             transform: translateX(-50%);
  42.             z-index: 10;
  43.             cursor: pointer;
  44.             width: 100%;
  45.             background: #7979797a;
  46.         }
  47.  
  48.         .slider-btn:hover {
  49.             background: rgba(78, 77, 77, 0.48);
  50.         }
  51.  
  52.         .slider-btn:focus-visible {
  53.             background: rgba(78, 77, 77, 0.48);
  54.         }
  55.  
  56.         .slider-btn:active {
  57.             background: rgba(78, 77, 77, 0.48);
  58.         }
  59.  
  60.         .btn-up {
  61.             top: 10px;
  62.         }
  63.  
  64.         .btn-down {
  65.             bottom: 10px;
  66.         }
  67.     </style>
  68.  
  69.     <script>
  70.         document.addEventListener('DOMContentLoaded', function () {
  71.             const sliderTrack = document.getElementById('slider-track');
  72.             const btnUp = document.querySelector('.btn-up');
  73.             const btnDown = document.querySelector('.btn-down');
  74.             const previewImage = document.getElementById('preview-image');
  75.  
  76.             let currentIndex = 0;
  77.             const images = document.querySelectorAll('.slider-track img');
  78.             const totalImages = images.length;
  79.  
  80.             const slideHeight = images[0].clientHeight;
  81.  
  82.             // Обновление положения слайдера
  83.             function updateSlider() {
  84.                 sliderTrack.style.transform = `translateY(-${currentIndex * slideHeight}px)`;
  85.             }
  86.  
  87.             // Кнопки вверх/вниз
  88.             btnUp.addEventListener('click', () => {
  89.                 if (currentIndex > 0) {
  90.                     currentIndex--;
  91.                     updateSlider();
  92.                 }
  93.             });
  94.  
  95.             btnDown.addEventListener('click', () => {
  96.                 if (currentIndex < totalImages - 1) {
  97.                    currentIndex++;
  98.                    updateSlider();
  99.                }
  100.            });
  101.  
  102.            // Клик по изображению для его отображения в preview
  103.            images.forEach((image) => {
  104.                 image.addEventListener('click', () => {
  105.                     previewImage.src = image.src; // Обновляем превью-картинку
  106.                     previewImage.alt = image.alt;
  107.                 });
  108.             });
  109.         });
  110.  
  111.         window.onload = function () {
  112.             const sliderTrack = document.getElementById('slider-track');
  113.             const btnUp = document.querySelector('.btn-up');
  114.             const btnDown = document.querySelector('.btn-down');
  115.             const previewImage = document.getElementById('preview-image');
  116.  
  117.             let currentIndex = 0;
  118.             const images = document.querySelectorAll('.slider-track img');
  119.             const totalImages = images.length;
  120.             const slideHeight = images[0].clientHeight;
  121.  
  122.             // Обновление положения слайдера
  123.             function updateSlider() {
  124.                 sliderTrack.style.transform = `translateY(-${currentIndex * slideHeight}px)`;
  125.             }
  126.  
  127.             // Кнопки вверх/вниз
  128.             btnUp.addEventListener('click', () => {
  129.                 if (currentIndex > 0) {
  130.                     currentIndex--;
  131.                     updateSlider();
  132.                 }
  133.             });
  134.  
  135.             btnDown.addEventListener('click', () => {
  136.                 if (currentIndex < totalImages - 1) {
  137.                    currentIndex++;
  138.                    updateSlider();
  139.                }
  140.            });
  141.  
  142.            // Клик по изображению для его отображения в preview
  143.            images.forEach((image) => {
  144.                 image.addEventListener('click', () => {
  145.                     previewImage.src = image.src; // Обновляем превью-картинку
  146.                     previewImage.alt = image.alt;
  147.                 });
  148.             });
  149.         };
  150.  
  151.     </script>
  152.  
  153. </head>
  154. <body class="d-flex flex-column min-vh-100">
  155. <!-- Шапка -->
  156. <header class="container-fluid py-3">
  157.     <nav class="navbar navbar-expand-md navbar-light">
  158.         <!-- Логотип -->
  159.         <a class="navbar-brand" href="/">
  160.             <img src="/static/img/logo_transperent.png" alt="Логотип" class="header-logo" style="max-height: 80px; object-fit: contain;">
  161.         </a>
  162.  
  163.         <!-- Кнопка для мобильных экранов -->
  164.         <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Переключить навигацию">
  165.             <span class="navbar-toggler-icon"></span>
  166.         </button>
  167.  
  168.         <!-- Навигационное меню -->
  169.         <div class="collapse navbar-collapse" id="navbarNav">
  170.             <ul class="navbar-nav ms-auto">
  171.                 <li class="nav-item">
  172.                     <a class="nav-link" href="/catalog/">Каталог</a>
  173.                 </li>
  174.                 <li class="nav-item">
  175.                     <a class="nav-link" href="/favorites/">Избранное</a>
  176.                 </li>
  177.                 <li class="nav-item">
  178.                     <a class="nav-link" href="/cart/">Корзина</a>
  179.                 </li>
  180.                 <li class="nav-item">
  181.                     <a class="nav-link" href="/login/">Авторизация</a>
  182.                 </li>
  183.             </ul>
  184.  
  185.             <!-- Поиск -->
  186.             <form class="d-flex ms-3">
  187.                 <input class="form-control" type="search" placeholder="Поиск" aria-label="Поиск">
  188.             </form>
  189.         </div>
  190.     </nav>
  191. </header>
  192.  
  193.  
  194.     <div class="container">
  195.         <h3>Планшет для эскизов "Тенистая аллея" 300 г/м2 A5 14.8 х 21 см склейка с одной стороны 18 л. ПЛ-0526</h3>
  196.         <div class="row g-2">
  197.             <!-- Слайдер изображений -->
  198.             <div class="slider-container">
  199.                 <div class="slider-track" id="slider-track">
  200.                     <img src="https://via.placeholder.com/300x200/FF5733/FFFFFF?text=Image+1" alt="Image 1">
  201.                     <img src="https://via.placeholder.com/300x200/33C1FF/FFFFFF?text=Image+2" alt="Image 2">
  202.                     <img src="https://via.placeholder.com/300x200/75FF33/FFFFFF?text=Image+3" alt="Image 3">
  203.                     <img src="https://via.placeholder.com/300x200/FFC300/FFFFFF?text=Image+4" alt="Image 4">
  204.                 </div>
  205.                 <button class="btn slider-btn btn-up"></button>
  206.                 <button class="btn slider-btn btn-down"></button>
  207.             </div>
  208.             <div class="col-md-4 col-lg-6 d-flex align-items-center">
  209.                 <!-- Блок для отображения выбранного изображения -->
  210.                 <div class="preview-container" id="preview-container">
  211.                     <img src="https://via.placeholder.com/300x200/FF5733/FFFFFF?text=Image+1" alt="Preview" id="preview-image">
  212.                 </div>
  213.  
  214.             </div>
  215.             <div class="col-md-4 col-lg-3">
  216.                 <div>Описание</div>
  217.                 <div>Описание</div>
  218.                 <div>Описание</div>
  219.                 <div>Описание</div>
  220.                 <div>Описание</div>
  221.                 <div>Описание</div>
  222.                 <div>Описание</div>
  223.                 <div>Описание</div>
  224.                 <div>Описание</div>
  225.                 <div>Описание</div>
  226.                 <div>Описание</div>
  227.                 <div>Описание</div>
  228.                 <div>Описание</div>
  229.                 <div>Описание</div>
  230.                 <div>Описание</div>
  231.                 <div>Описание</div>
  232.                 <div>Описание</div>
  233.                 <div>Описание</div>
  234.                 <div>Описание</div>
  235.                 <div>Описание</div>
  236.                 <div>Описание</div>
  237.                 <div>Описание</div>
  238.                 <div>Описание</div>
  239.                 <div>Описание</div>
  240.                 <div>Описание</div>
  241.                 <div>Описание</div>
  242.                 <div>Описание</div>
  243.                 <div>Описание</div>
  244.                 <div>Описание</div>
  245.                 <div>Описание</div>
  246.                 <div>Описание</div>
  247.                 <div>Описание</div>
  248.                 <div>Описание</div>
  249.                 <div>Описание</div>
  250.                 <div>Описание</div>
  251.                 <div>Описание</div>
  252.                 <div>Описание</div>
  253.                 <div>Описание</div>
  254.                 <div>Описание</div>
  255.                 <div>Описание</div>
  256.                 <div>Описание</div>
  257.                
  258.             </div>
  259.             <div class="col-md-4 col-lg-3">
  260.                 Купить
  261.             </div>
  262.         </div>
  263.     </div>
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271. <!-- Подвал -->
  272. <footer class="container-fluid py-3 mt-auto">
  273.     <div class="d-flex justify-content-between align-items-center">
  274.         <img src="/static/img/logo.jpg" alt="Логотип" class="footer-logo">
  275.         <div class="container">
  276.             <div class="row">Связаться</div>
  277.             <div class="row">Телефон: +7 000 000 00-00</div>
  278.             <div class="row">Email: [email protected]</div>
  279.         </div>
  280.     </div>
  281. </footer>
  282.  
  283. <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
  284.  
  285.  
  286. </body></html>
Add Comment
Please, Sign In to add comment