Задать вопрос
@arsenalfangun

Как сделать слайдер при наведении?

5f869fa27d0f4459349807.pngКак реализовать такой слайдер? При наведении на определенную часть меняется картинка и меняется положение линии. Гуглю и везде обычные слайдеры. Дайте пожалуйста наводки, как называется такой тип слайдера и что вообще гуглить.
  • Вопрос задан
  • 455 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
Eridani
@Eridani
Мимо проходил
Это даже не слайдер.

Поверх картинки накладываются N блоков в ряд, где N = кол-ву изображений.
Соответственно, у каждого N блока в data атрибуте есть путь к своему изображению.
По наведению на этот блок, берем адрес изображения из data и подставляем в основной блок с изображением.

Всё
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Lord_Dantes
Можно использовать Owl Carousel 2, правда он не поддерживает больше но тем не менее. Там есть события и при наведении например, можно сделать событие перелистывания или автоперелистывания.
Ответ написан
Комментировать
krasmargarita
@krasmargarita
web-разработчик
function catalogItemSlider() {
	const itemSwiper = new Swiper('.catalog-item-swiper', {
		speed: 700,
		slidesToShow: 1,
		slidesToScroll: 1,
		scrollbar: {
			el: '.swiper-scrollbar',
			draggable: false,
		},
		loop: false
	});

	// определение общего сквозного индекса итема, чтобы переключать слайдер только в нем
	$('.product-item-image-wrapper-sectors > div').mouseenter(function (e) {
		let sectorIndex = $(this).index(),
			rowIndex = $(this).closest('.catalog__row').index(),
			currentRow = $('.catalog__row')[rowIndex],
			catalogItemIndex = $(this).closest('.catalog__item').index() + 1,
			totalRowItems = ((rowIndex + 1) * 3),
			currentItemIndex = (catalogItemIndex + totalRowItems - 3) - 1;

		itemSwiper[currentItemIndex].slideTo(sectorIndex, 700);
	});

	// возвращение всех слайдеров в исходную точку при выходе из итема
	$('.catalog__item').mouseleave(function () {
		$('.catalog-item-swiper').each(function (index, el) {
			let slider = el.swiper; // Get the swiper instance
			if (slider) {
				slider.slideTo(0, 700); // Slide to the first slide with a duration of 700ms
			}
		});
	});
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы