Jquery, как заменить объект данных на max-width ( flickity)

Я новичок здесь, и это мой первый вопрос.

У меня есть несколько галерей с библиотекой flickity на простой странице, когда на рабочем столе в каждой галерее есть 3 изображения на точку, скользящие каждые 3 секунды, и когда для res установлено значение для смартфона, окно просмотра галереи должно переключиться на 1 изображение на точку. Итак, вот HTML-код:

<div class="carousel flick" data-flickity='{ "cellAlign": "left", "contain": true, "groupCells": 3, "autoPlay": true, "wrapAround": true, "prevNextButtons": false }'></div> 

как вы можете видеть, есть объект под названием groupCells 3, это означает, что галерея будет переключать 3 ячейки за раз, но если я перехожу в режим смартфона, мне нужно сказать атрибуту данных, что groupCells должен быть равен 1, когда максимальная ширина равна установить на 991px

Итак, вот мой запрос:

$(window).resize(function () {
var viewportWidth = $(window).width();
if (viewportWidth < 991) {
        $( ".flick" ).data( "flickity" ).groupCells === "1";
}

});

Конечно, не сработает.

Что с этим не так?

Спасибо за вашу поддержку!

2 ответа

Большое спасибо TheBrutalX!:D надеюсь это поможет кому-то есле!! Я говорил с ним напрямую, и мы решили эту проблему другим способом. Этот первый пост работает отлично, но скрипт должен быть написан в конце HTML для правильной работы.

Тогда вот его решение:

<div class="carousel flick"></div>  

Jquery для запуска галереи и изменения размера помещается в конце HTML для правильной работы при изменении размера:

 var slider_setting = {
            cellAlign: 'left',
              contain: true,
              groupCells: 3,
              autoPlay: true,
              wrapAround: true,
              prevNextButtons: false
        };
    $(document).ready(function(){
        $(".flick").each(function(){
            var viewportWidth = $(window).width()
            if (viewportWidth < 991) {
              slider_setting.groupCells = 1;
            } else {
                slider_setting.groupCells = 3;
            }
            $(this).flickity(slider_setting);
        });
    });
    $(window).resize(function () {
        var viewportWidth = $(window).width();
        if (viewportWidth < 991) {
          slider_setting.groupCells = 1;
        } else {
            slider_setting.groupCells = 3;
        }
        $(".flick").each(function(){
            $(this).flickity('destroy');
            $(this).flickity(slider_setting);
        });
    });

Большое спасибо TheBrutalx!

Попробуй это

$(window).resize(function () {
  var viewportWidth = $(window).width();
  var json = $( ".flick" ).data( "flickity" );
  if (viewportWidth < 991) {
    json.groupCells = 1;
    $( ".flick" ).data( "flickity" , json);

  } else {
    json.groupCells = 3;
    $( ".flick" ).data( "flickity" , json);
  }
});
Другие вопросы по тегам