kiskiskit
@kiskiskit
Жадно изучаю каждый пиксель

Как взаимодействовать с breakpoint в slick slider?

Как правильно взаимодействовать с breakpoint в slick. нужно, чтобы слайдер не был активным на ноутбуках и других больших экранах, а был лишь активен на мобильных устройствах и планшетах. подскажите пожалуйста, как это сделать с помощью свойства responsive?

https://codepen.io/kiskiskit/pen/MWowBbW
  • Вопрос задан
  • 245 просмотров
Решения вопроса 2
@depressionofoleg
С помощью responsive это вряд ли как-то можно сделать, но можно ограничить срабатываение скрипта в зависимости от размера экрана и ресайза.
function mobileOnlySlider() {
    $(document).ready(function(){
            $('.slider').slick({
                slidesToShow:3,
                slidesToScroll: 1,
                centerMode: true,
                centerPadding: '0px',
                speed: 700,
                infinite: true,
                responsive: [
                    {
                        breakpoint: 576,
                        settings: {
                            slidesToShow: 2,
                            slidesToScroll: 1
                        }
                    }
                ]
            });
    })
}

if (window.innerWidth >= 768) {
    mobileOnlySlider();
}

$(window).resize(function() {
    if(window.innerWidth >= 768) {
        if($('.slider').hasClass('slick-initialized')) {
            return;
        }
        mobileOnlySlider();
    } else {
        if($('.slider').hasClass('slick-initialized')) {
            $('.slider').slick('unslick');
        } else {
            return;
        }
    }
Ответ написан
AntonLitvinenko
@AntonLitvinenko
HTML coder
$(window).on('resize', function(e){
  // Переменная, по которой узнаем запущен слайдер или нет.
  var initLib = $('.library-slider').data('init-slider');

  if(window.innerWidth < 768){
    // Если слайдер не запущен
    if(initLib != 1){
      // Запускаем слайдер и записываем в data init-slider = 1
      $('.library-slider').slick({
        arrows: false,
        dots: true,
        slidesToShow: 3,
        slidesToScroll: 1,
        responsive: [
          {
            breakpoint: 576,
            settings: {
              slidesToShow: 2,
              slidesToScroll: 1,
            }
          },
          {
            breakpoint: 480,
            settings: {
              slidesToShow: 1,
              slidesToScroll: 1,
            }
          }
        ]
      }).data({'init-slider': 1});
    }
  }
  // Если десктоп
  else {
    // Если слайдер запущен
    if(initLib == 1){
      // Разрушаем слайдер и записываем в data init-slider = 0
      $('.library-slider').slick('unslick').data({'init-slider': 0});
    }
  }
}).trigger('resize')
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы