Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   swiper-slider переключение слайдов при наведении на превью (https://javascript.ru/forum/misc/80119-swiper-slider-pereklyuchenie-slajjdov-pri-navedenii-na-prevyu.html)

Mazaxaka_6630 29.04.2020 14:08

swiper-slider переключение слайдов при наведении на превью
 
Добрый день всем! Ребята. На сайте в 1С-Битрикс интегрирован слайдер:
Слайдер находится вот тут:
https://test.oknapanorama.by/test/

Swiper-slider взят от сюда:
https://swiperjs.com/api/
Нужно его доработать так, чтобы слайды переключались при наведении на превьюшку слайда. Никак не получается это реализовать.
Менять слайдер на другой достаточно затратно выходит..
Подскажите пожалуйста в какую сторону копать..

Mazaxaka_6630 29.04.2020 14:33

Да, это понятно.
Но, есть трафик на сайт и с десктопов. И начальство хочет имменно на десктопе видеть такой эффект
Можно как-то решить?

Mazaxaka_6630 29.04.2020 15:19

Rise,
Цитата:

Сообщение от Rise (Сообщение 523579)
var thumbs = document.querySelectorAll('.gallery-thumbs .swiper-slide');
for (var i = 0; i < thumbs.length; i++) thumbs[i].addEventListener('mouseover', function() { this.click() });

Спасибо, что помогаете, вставил данный код чуть ниже вызова слайдера.
Не хочет отрабатывать.
Может быть конфликтует с событиями самого слайдера?
Я так понимаю не отрабатываем именно click

рони 29.04.2020 16:09

Mazaxaka_6630,
может там не клик а mousedown или иначе.

Mazaxaka_6630 29.04.2020 16:27

рони,
Вот и не могу понять, как имитировать клик при наведении на превьюшку..

рони 29.04.2020 17:13

Mazaxaka_6630,
вставить после инициализации слайдера
$(function() {
$(".swiper-slide").mouseenter(function() {
var down = new MouseEvent("mousedown", {bubbles: true, cancelable: false});
var up = new MouseEvent("mouseup", {bubbles: true, cancelable: false});
  this.dispatchEvent(down);
  this.dispatchEvent(up);
})
});

Mazaxaka_6630 29.04.2020 17:52

Цитата:

Сообщение от Rise (Сообщение 523579)
var thumbs = document.querySelectorAll('.gallery-thumbs .swiper-slide');
for (var i = 0; i < thumbs.length; i++) thumbs[i].addEventListener('mouseover', function() { this.click() });

Огромное спасибо! :dance: Работает)

Mazaxaka_6630 29.04.2020 22:39

Rise,
Большое спасибо вам!

makdim 22.12.2020 17:23

Тоже мучаюсь с данной проблемой.
 
<div class="swiper-container swiperExp">
    <div class="swiper-wrapper">
        <div class="swiper-slide"><img src="[*image*]" alt="[*pagetitle*]"></div>
        <div class="swiper-slide"><img src="[*image*]" alt="[*pagetitle*]"></div>
        <div class="swiper-slide"><img src="[*image*]" alt="[*pagetitle*]"></div>
        <div class="swiper-slide"><img src="[*image*]" alt="[*pagetitle*]"></div>
    </div>
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
</div>
<div class="swiper-container swiperOneMain">
    <div class="swiper-wrapper">
        <div class="swiper-slide"><img src="[*image*]" alt="[*pagetitle*]"></div>
        <div class="swiper-slide"><img src="[*image*]" alt="[*pagetitle*]"></div>
        <div class="swiper-slide"><img src="[*image*]" alt="[*pagetitle*]"></div>
        <div class="swiper-slide"><img src="[*image*]" alt="[*pagetitle*]"></div>
    </div>
</div>

<script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
<script>
const slider = document.querySelector('.swiperOneMain');
const sliderNav = document.querySelector('.swiperExp');

let mySwiperNav = new Swiper(sliderNav, {
    slidesPerView: 5,
    spaceBetween: 10,
    loopedSlides: 5,
    freeMode: true,
    loop: true,
    direction: 'vertical',
});

let mySwiper = new Swiper(slider, {

    spaceBetween: 10,
    loopedSlides: 5,
    loop: true,
    navigation: {
        nextEl: 'swiper-button-next',
        prevEl: 'swiper-button-prev',
    },
    thumbs: {
        swiper: mySwiperNav,
    }
});

var thumbs = document.querySelectorAll('.swiperExp .swiper-slide');
for (var i = 0; i < thumbs.length; i++) thumbs[i].addEventListener('mouseover', function() { this.click() });

</script>

Не понимаю почему не работает(
help)

рони 22.12.2020 18:24

makdim,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.


Часовой пояс GMT +3, время: 06:37.