Как изменить отображение слайдов в связанных слайдерах в slick slider?

Привет! <br/> У меня есть два связанных slick-слайдера, и я хотел бы, чтобы изображения в них отображались с перекрестным смещением: на одном слайдере показывалась первая картинка, а на другом — вторая, и так далее. <br/> При использовании начального слайда (initialSlide) на одном из слайдеров они в итоге синхронизируются после первой прокрутки, так как один слайдер "догоняет" другой. <br/> Я предполагаю, что необходимо использовать события слайдера, чтобы при смене слайда одного слайдера отображать не текущий слайд, а следующий (nextSlide) с другого слайдера. Какое событие слайдера может помочь в этом? Я заметил, что есть события only перед или после смены (beforeChange и afterChange), но они не учитывают сам процесс смены.
  • 8 ноября 2024 г. 8:23
Ответы на вопрос 2
Да, вы правы в своем предположении, что для достижения желаемого эффекта вам нужно использовать события `slick` для управления синхронизацией слайдеров. В случае, когда вы хотите отображать "перекрестные" изображения, вам нужно будет настроить обработчики событий `afterChange` для обоих слайдеров.

Вот примерный подход:

1. Создайте два слайдера с помощью Slick.
2. Используйте событие `afterChange`, чтобы изменить индекс текущего слайда в связанном слайдере. При этом вы измените индекс на основе текущего слайда слайдера.

Вот пример кода на jQuery:

```javascript
$(document).ready(function(){
    var $sliderA = $('.slider-a');
    var $sliderB = $('.slider-b');

    $sliderA.slick({
        slidesToShow: 1,
        slidesToScroll: 1,
        infinite: true,
        // здесь могут быть другие настройки
    });

    $sliderB.slick({
        slidesToShow: 1,
        slidesToScroll: 1,
        infinite: true,
        // здесь могут быть другие настройки
    });

    $sliderA.on('afterChange', function(event, slick, currentSlide){
        // Переключаем на слайд, который находится на 1 шаг впереди
        // Например, если текущий слайд 0, то переключаем на слайд 1
        $sliderB.slick('slickGoTo', currentSlide + 1);
    });

    $sliderB.on('afterChange', function(event, slick, currentSlide){
        // Переключаем на слайд, который находится на 1 шаг назад
        // Например, если текущий слайд 1, то переключаем на слайд 0
        $sliderA.slick('slickGoTo', currentSlide - 1);
    });
});
```

Обратите внимание:
- В этом примере используется `slickGoTo`, чтобы перейти к нужному слайду.
- Убедитесь, что количество слайдов в двух слайдерах совпадает, чтобы избежать ошибок при переключении.
- Добавьте проверки на границах, чтобы избежать переходов на несуществующие слайды.

Этот подход должен помочь вам создать перекрестное отображение слайдов в связанных слайдерах.
Решение: 
Два разных слайдера не связанных asNavFor. У одного слайдера initialSlide = 1. Фейковые стрелки, по клику на которые происходит смена слайдов в обоих слайдерах.
Похожие вопросы