@Dimtri

В slick slider не работают настройки responsive, если слайдер вызван через This, что делать?

Здравствуйте.
Есть ситуация, кнопки слайдера вынесены за пределы самого слайдера. И так как таких слайдеров на странице может быть много, то для того, чтобы не делать под каждый слайдер свой вызов, делаю вызов слайдера таким образом:
jQuery( '.slider-doctors' ).each( function() {
    jQuery( this ).slick( {
      slidesToShow: 2,
      prevArrow: jQuery(this).parents('.slider-wrap').find('.slick-prev'),
      nextArrow: jQuery(this).parents('.slider-wrap').find('.slick-next'),
      responsive: [
        {
          breakpoint: 480,
          settings: {
            slidesToShow: 1
          }
        }
      ]
    } );
  } );

В результате настройки, заданные для медиа-запросов (меньше 480px), срабатывают только после ресайза страницы. А при загрузке параметр slidesToShow выводит два слайда. Хотя если поресайзить страницу или повертеть смартфон горизонтально-вертикально, то кол-во слайдов становится 1, как и должно быть.
Подскажите, можно ли как-то доделать вызов слайдера, чтобы при загрузке на устройствах и страницах меньше 480px сразу же устанавливался 1 слайд?
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Dimtri Автор вопроса
Нейросеть помогла следующим советом:

Мне кажется, что проблема может быть в том, что событие "resize" не вызывается автоматически при загрузке страницы. Вам нужно явно вызвать обработчик события resize, чтобы применить настройки для устройств с шириной меньше 480 пикселей при загрузке страницы.

Вы можете добавить следующий код после инициализации слайдера:

jQuery(window).on('load', function() {
  jQuery(window).trigger('resize');
});


Этот код вызовет событие "resize" после полной загрузки страницы, в результате чего настройки для устройств с шириной меньше 480 пикселей будут применены сразу же.

Также убедитесь, что у вас правильно подключены все необходимые файлы для работы слайдера, включая jQuery и slick slider.

Надеюсь, это поможет вам решить проблему!


Так себе решение на самом деле. Но за неимением лучшего использовал пока это.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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