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

Slick Slider как сделать несколько связанных слайдеров?

Здравствуйте, возникла такая проблема, не знаю как решить.

На странице может быть несколько карточек, например до 100 штук на странице, как видно по макету, там есть два связанных слайдера, но как их сделать связанными только друг с другом, но не связаннями со слайдерами других карточек?5d35cb7a37342944912885.png
  • Вопрос задан
  • 2394 просмотра
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • UPROCK.SCHOOL
    Webflow-разработчик: создание сайтов без кода
    4 месяца
    Далее
Решения вопроса 2
@mcrack Автор вопроса
Вот переделал в более удобный вид вариант слайдера Ивана Винокурова, который тут написал мне ответ. Всё проверил, работают независимо.

$('.test-card').each(function(){
    /* Основной слайдер */
    $(this).find('.test-main-slider__list').slick({
      infinite: true,
      slidesToShow: 1,
      slidesToScroll: 1,
      arrows: false,
      autoplay: true,
      autoplaySpeed: 3000,
      asNavFor: $(this).find('.test-second-slider__list'),
      dots: true
    });

    /* Связанный слайдер */
    $(this).find('.test-second-slider__list').slick({
      infinite: true,
      slidesToShow: 1,
      slidesToScroll: 1,
      arrows: false,
      asNavFor: $(this).find('.test-main-slider__list'),
      dots: true
    });
  });
Ответ написан
Комментировать
barbudour
@barbudour
ART → TECH
let numSlick = 0;
$('.insert-gallery .main').each( function() {
  numSlick += 1;
  $(this).addClass(`gallery-main-${numSlick}`).slick({
    asNavFor: `.gallery-slides-${numSlick}`,
    infinite: false,
    // autoplay: true,
    slidesToShow: 1,
    slidesToScroll: 1,
    arrows: false
  });
});

numSlick = 0;
$('.insert-gallery .controls #gallery-prev').each( function() {
  numSlick += 1;
  $(this).addClass(`gallery-prev-${numSlick}`);
});

numSlick = 0;
$('.insert-gallery .controls #gallery-next').each( function() {
  numSlick += 1;
  $(this).addClass(`gallery-next-${numSlick}`);
});
  
numSlick = 0;
$('.insert-gallery .all').each( function() {
  numSlick += 1;
  $(this).addClass(`gallery-slides-${numSlick}`).slick({
    asNavFor: `.gallery-main-${numSlick}`,
    infinite: false,
    // autoplay: true,
    slidesToShow: 4,
    slidesToScroll: 1,
    prevArrow: `.gallery-prev-${numSlick}`,
    nextArrow: `.gallery-next-${numSlick}`
  });
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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