Телефоны

  • 0-9
  • A
  • B
  • C
  • D
  • E
  • F
  • G
  • H
  • I
  • J
  • K
  • L
  • M
  • N
  • O
  • P
  • Q
  • R
  • S
  • T
  • U
  • V
  • W
  • Y
  • Z

Каталог

Цена
-
  • По популярности
  • Сначала дешёвые
  • Сначала дорогие
  • По названию
  • Новинки
Патинированная
Стереть
Italon / Италон
Стереть
очистить

Керамогранит Vitra Craftwood Медовый Матовый 20x120

Артикул K947903R
Страна Россия Россия
Размер 20x120
Поверхность Матовая
Наличие: 268 м2

Керамогранит Estima Bernini Керамогранит BR01 10мм Неполированный 60x120

Артикул 66932
Страна Россия Россия
Размер 60x120
Поверхность Натуральная
Наличие: по запросу

Керамогранит Ametis Marmulla Керамогранит MA01 11мм Неполированный 80x160

Артикул 68636
Страна Россия Россия
Размер 80x160
Поверхность Натуральная
Наличие: 15 м2

Керамогранит Century Contact Stone White Molato 60x120

Артикул 129197
Страна Италия Италия
Размер 60x120
Поверхность Полированная
Наличие: по запросу

Керамогранит Rex Prexious of Rex White Fantasy 6mm Glossy 120x120

Артикул 756388
Страна Италия Италия
Размер 120x120
Поверхность Полированная
Нет в продаже

Керамогранит Rex Prexious of Rex Pearl Attraction 6mm Matt 80x80

Артикул 756408
Страна Италия Италия
Размер 80x80
Поверхность Матовая
Нет в продаже

Керамогранит Rex Prexious of Rex Pearl Attraction 6mm Glossy 80x80

Артикул 756414
Страна Италия Италия
Размер 80x80
Поверхность Полированная
Нет в продаже

Керамогранит Rex Prexious of Rex Charming Amber 6mm Glossy 120x280

Артикул 757739
Страна Италия Италия
Размер 120x280
Поверхность Полированная
Наличие: 74 м2

Керамогранит Rex I Classici di Rex Statuario Open Book A 6mm Glossy 160x320

Артикул 747649
Страна Италия Италия
Размер 160x320
Поверхность Полированная
Наличие: по запросу

Керамогранит Rex I Classici di Rex Calacatta Gold Open Book A 6mm Matt 160x320

Артикул 753283
Страна Италия Италия
Размер 160x320
Поверхность Матовая
Наличие: по запросу

Керамогранит Rex Heritage Luxe Emerald Comfort 80x180

Артикул 774591
Страна Италия Италия
Размер 80x180
Поверхность Матовая
Наличие: по запросу

Керамогранит Rex Heritage Luxe Aqua 6mm Comfort 60x120

Артикул 774847
Страна Италия Италия
Размер 60x120
Поверхность Матовая
Наличие: по запросу

Керамогранит Rex Etoile De Rex Tropical 6mm Glossy 160x160

Артикул 761722
Страна Италия Италия
Размер 160x160
Поверхность Полированная
Нет в продаже

Керамогранит Rex Ardoise Blanc 6mm 120x120

Артикул 745924
Страна Италия Италия
Размер 120x120
Поверхность Натуральная
Наличие: по запросу

Керамогранит Flaviker Supreme Treasure Cristallo Amber Lux 120x280

Артикул PF60008837
Страна Италия Италия
Размер 120x280
Поверхность Полированная
Наличие: по запросу

Керамогранит Flaviker Supreme Memories Bianco Vagli Nat 60x120

Артикул PF60011838
Страна Италия Италия
Размер 60x120
Поверхность Натуральная
Наличие: 52 м2

Керамогранит Flaviker Supreme Evo Statuario Superior Soft 160x320

Артикул PF60003846
Страна Италия Италия
Размер 160x320
Поверхность Матовая
Наличие: по запросу

Керамогранит Flaviker Supreme Evo Calacatta Extra Lux 160x320

Артикул PF60000367
Страна Италия Италия
Размер 160x320
Поверхность Полированная
Наличие: по запросу

Керамогранит Flaviker Four Seasons Honey Nat 20x120

Артикул PF60011810
Страна Италия Италия
Размер 20x120
Поверхность Натуральная
Наличие: 52 м2

Керамогранит Flaviker Flow Mint Gloss 6x25

Артикул PF60011943
Страна Италия Италия
Размер 6x25
Поверхность Глянцевая
Наличие: по запросу

Керамогранит Porcelanosa Taco Oxford Natural 33.3x100

Артикул 100291833
Страна Испания Испания
Размер 33x100
Поверхность Матовая
Наличие: 73 м2

Керамогранит Porcelanosa Mirage-Image White 40x80

Артикул 100202103
Страна Испания Испания
Размер 40x80
Поверхность Матовая
Наличие: 44 м2

Керамогранит La Fabbrica Pierres Des Chateaux Cheverny Advance 8.8mm Nat 100x100

Артикул 158061
Страна Италия Италия
Размер 100x100
Поверхность Натуральная
Наличие: по запросу

Керамогранит La Fabbrica LS Pietra Lavica Perseo Arenal 12mm 49x49

Артикул L802
Страна Италия Италия
Размер 49x49
Поверхность Лаппатированная
Наличие: по запросу

Керамогранит La Fabbrica I Quarzi Prasio 8.8mm Rett 30x60

Артикул V62RI3
Страна Италия Италия
Размер 30x60
Поверхность Матовая
Наличие: по запросу

Керамогранит La Fabbrica I Quarzi Muretto Diaspro 8.8mm 15x60

Артикул L62RI5
Страна Италия Италия
Размер 15x60
Поверхность Матовая
Наличие: по запросу

Керамогранит La Fabbrica Cotto Del Casale Rosado 8.8mm R11 20x40

Артикул 161036
Страна Италия Италия
Размер 20x40
Поверхность Матовая
Наличие: по запросу

Керамогранит ABK Poetry Wood Gold Nat 20x120

Артикул PF60010058
Страна Италия Италия
Размер 20x120
Поверхность Матовая
Наличие: 50 м2
Maxfine Walk-On Hazel 6mm Naturale 75x75 / Максфине
 Валк-Он
 Хазел
 6mm Натуралье
 75x75
Смотреть товар
Код: F46437S
Шоурум

Керамогранит Maxfine Walk-On Hazel Naturale 75x75

Артикул P75346MF6
Страна Италия Италия
Размер 75x75
Поверхность Натуральная
Наличие: по запросу
Maxfine Walk-On Hazel 6mm Naturale 100x150 / Максфине
 Валк-Он
 Хазел
 6mm Натуралье
 100x150
Смотреть товар
Код: F46432S
Шоурум

Керамогранит Maxfine Walk-On Hazel Naturale 100x150

Артикул P1510346MF6
Страна Италия Италия
Размер 100x150
Поверхность Натуральная
Наличие: по запросу
1900
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Vives

1900

Страна Испания Испания
1XL
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Artcer

1XL

Страна Индия Индия
20mm
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Ocean Ceramic

20mm

Страна Индия Индия
20Twenty
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Emil Ceramica

20Twenty

Страна Италия Италия
20x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Ocean Ceramic

20x120

Страна Индия Индия
2XL
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Artcer

2XL

Страна Индия Индия
30x60
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Concor

30x60

Страна Индия Индия
3D
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Porcelanosa

3D

Страна Испания Испания
3D Experience
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Шоурум
Italon

3D Experience

Страна Россия Россия
3D Wall
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Atlas Concorde

3D Wall

Страна Италия Италия
3D Wall Design
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Atlas Concorde

3D Wall Design

Страна Италия Италия
3D Wall Plaster
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Atlas Concorde

3D Wall Plaster

Страна Италия Италия
3D White Wall
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Atlas Concorde Rus

3D White Wall

Страна Россия Россия
3XL
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Artcer

3XL

Страна Индия Индия
4D
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Marca Corona

4D

Страна Италия Италия
60
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Шоурум
WOW

60

Страна Испания Испания
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Bluezone

60x120

Страна Индия Индия
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Ocean Ceramic

60x120

Страна Индия Индия
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Italica

60x120

Страна Индия Индия
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Concor

60x120

Страна Индия Индия
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Leopard

60x120

Страна Индия Индия
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Etili Seramik

60x120

Страна Турция Турция
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Gresant

60x120

Страна Индия Индия
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Landgrace

60x120

Страна Индия Индия
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
QUA

60x120

Страна Турция Турция
60x120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Гранитея

60x120

Страна Россия Россия
60x60
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Ocean Ceramic

60x60

Страна Индия Индия
60x60
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Italica

60x60

Страна Индия Индия
60x60
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Concor

60x60

Страна Индия Индия
60x60
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Landgrace

60x60

Страна Индия Индия
60x60
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Гранитея

60x60

Страна Россия Россия
60х120
Смотреть коллекцию
// gallery-slider.js document.addEventListener('DOMContentLoaded', function() { const gallerySliders = document.querySelectorAll('.collection-card__gallery-slider'); if (gallerySliders.length === 0) return; // Функция для смены слайда function changeSlide(slider, direction) { const images = slider.querySelectorAll('.collection-card__slider-image'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); const activeImage = slider.querySelector('.collection-card__slider-image.active'); const activeDot = slider.querySelector('.collection-card__slider-dot.active'); if (!activeImage || images.length <= 1) return; let currentIndex = parseInt(activeImage.dataset.index); let newIndex; if (direction === 'next') { newIndex = (currentIndex + 1) % images.length; } else if (direction === 'prev') { newIndex = (currentIndex - 1 + images.length) % images.length; } else { newIndex = direction; // если передано число } // Анимация перехода activeImage.style.opacity = '0'; activeImage.classList.remove('active'); setTimeout(() => { activeImage.style.display = 'none'; const nextImage = slider.querySelector(`.collection-card__slider-image[data-index="${newIndex}"]`); nextImage.style.display = 'block'; setTimeout(() => { nextImage.style.opacity = '1'; nextImage.classList.add('active'); }, 10); }, 300); // Обновляем индикаторы if (activeDot) { activeDot.classList.remove('active'); } const nextDot = slider.querySelector(`.collection-card__slider-dot[data-index="${newIndex}"]`); if (nextDot) { nextDot.classList.add('active'); } } // Инициализация слайдеров gallerySliders.forEach(slider => { const prevBtn = slider.querySelector('.collection-card__slider-prev'); const nextBtn = slider.querySelector('.collection-card__slider-next'); const dots = slider.querySelectorAll('.collection-card__slider-dot'); // Обработчики для кнопок if (prevBtn) { prevBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'prev'); }); } if (nextBtn) { nextBtn.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); changeSlide(slider, 'next'); }); } // Обработчики для точек dots.forEach(dot => { dot.addEventListener('click', (e) => { e.preventDefault(); e.stopPropagation(); const index = parseInt(dot.dataset.index); changeSlide(slider, index); }); }); // Автоматическая смена при наведении мыши (по горизонтали) let mouseX = 0; let isDragging = false; let startX = 0; let threshold = 50; // порог для смены слайда slider.addEventListener('mousemove', (e) => { if (!isDragging) return; const currentX = e.clientX; const diff = currentX - startX; if (Math.abs(diff) > threshold) { if (diff > 0) { changeSlide(slider, 'prev'); } else { changeSlide(slider, 'next'); } startX = currentX; } }); slider.addEventListener('mousedown', (e) => { isDragging = true; startX = e.clientX; }); slider.addEventListener('mouseup', () => { isDragging = false; }); slider.addEventListener('mouseleave', () => { isDragging = false; }); // Свайп для мобильных устройств let touchStartX = 0; let touchEndX = 0; slider.addEventListener('touchstart', (e) => { touchStartX = e.changedTouches[0].screenX; }, { passive: true }); slider.addEventListener('touchend', (e) => { touchEndX = e.changedTouches[0].screenX; handleSwipe(); }, { passive: true }); function handleSwipe() { const diff = touchStartX - touchEndX; if (Math.abs(diff) > 50) { // минимальное расстояние свайпа if (diff > 0) { changeSlide(slider, 'next'); } else { changeSlide(slider, 'prev'); } } } // Автопрокрутка при длительном наведении let autoSlideInterval; let hoverTimer; slider.addEventListener('mouseenter', () => { // Запускаем автопрокрутку через 3 секунды наведения hoverTimer = setTimeout(() => { autoSlideInterval = setInterval(() => { changeSlide(slider, 'next'); }, 3000); // меняем каждые 3 секунды }, 3000); }); slider.addEventListener('mouseleave', () => { clearTimeout(hoverTimer); clearInterval(autoSlideInterval); }); }); }); // Подключите этот файл в template.php $this->addExternalJS($templateFolder . '/gallery-slider.js');
Polo Gres

60х120

Страна Индия Индия