Слик js удаление одного из слайдов приводит к пропуску слайдов - PullRequest
1 голос
/ 26 января 2020

Я добавляю слайд к слайдеру слайков, и когда я перехожу к следующему слайду, я хочу удалить первый слайд. Это приводит к пропуску одного из слайдов (это видно, когда я двигаюсь назад, появляется, но не когда я пытаюсь перейти вперед к последнему слайду). Теперь я попытался заставить slick перейти к следующему слайду, используя slick ('slickGoTo'), но это не имеет никакого эффекта.

$(document).ready(function(){

 var boolRemove = 0;

$('.slider').on("beforeChange", function(event, slick,currentSlide,nextSlide ) {
     if(!boolRemove && currentSlide == 1) {
      $(".slider").slick("removeSlide", 0);
      boolRemove = 1;
    }
  });

  $('.slider').slick({
    dots: false,
    autoplay: false,
    infinite: false,
    arrows: true,
    speed: 0,
    slide: 'div',
    cssEase: 'linear'
    });

   $('.slider').slick('addSlide', $(".slick-slide:first-child").clone() , 0);

});

Ссылка Fiddle: https://jsfiddle.net/fmxjL95p/

1 Ответ

1 голос
/ 27 января 2020

Похоже, проблема в том, что, поскольку вы запускаете свою функцию на beforeChange, индекс, который хранит Слик, по-прежнему указывает на предыдущий слайд (в данном случае первый слайд). Вы можете заставить свою функцию удалить первый слайд в нужное время, удалив слайд 0, когда currentSlide === 0 (вместо 1, как в вашем коде).

$('.slider').on("beforeChange", function(event, slick, currentSlide, nextSlide ) {
     if(!boolRemove && currentSlide === 0) {
         $(".slider").slick("removeSlide", 0);
         boolRemove = true;
     }
});
...