Подтвердить что ты не робот

Как добавить пробелы между элементом карусели Slick

Я хочу добавить пробел между двумя пятнами карусели, но не хочу пространства с заполнением, потому что это уменьшает размер элемента (и я не хочу этого).

enter image description here

    $('.single-item').slick({
        initialSlide: 3,
        infinite: false
    });
.slick-slider {
    margin:0 -15px;
}
.slick-slide {
    padding:10px;
    background-color:red;
    text-align:center;
    margin-right:15px;
    margin-left:15px;
}
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<link href="#" onclick="location.href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css'; return false;" rel="stylesheet"/>
<script src="http://cdn.jsdelivr.net/jquery.slick/1.5.0/slick.min.js"></script>
<link href="#" onclick="location.href='http://cdn.jsdelivr.net/jquery.slick/1.5.0/slick.css'; return false;" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="container">
    <div class="row">
        <div class="col-sm-12" style="background-color:gray;">
            <div class="slider single-item" style="background:yellow">
                <div>1</div>
                <div>2</div>
                <div>3</div>
                <div>4</div>
                <div>5</div>
                <div>6</div>
            </div>
        </div>
    </div>
</div>
4b9b3361

Ответ 1

Да, я нашел решение проблемы.

  • Создайте один слайдер с дополнительной шириной с обеих сторон (что мы можем использовать для добавления пространства позиций с обеих сторон).
  • Создайте Внутренний элемент содержимого с соответствующей шириной и разницей с обеих сторон (это должен быть ваш фактический размер обертки)
  • Готово

Ответ 2

    /* the slides */
  .slick-slide {
    margin: 0 27px;
  }
  /* the parent */
  .slick-list {
    margin: 0 -27px;
  }

Эта проблема была анонсирована как проблема (# 582) в плагине github, и это решение было упомянуто и там (https://github.com/kenwheeler/slick/issues/582)

Ответ 3

@Ответ Dishan TD работает хорошо, но я получаю лучшие результаты, используя только margin-left.

Чтобы сделать это более понятным для всех остальных, вы должны обратить внимание на оба противоположных числа: 27 и -27

  /* the slides */
  .slick-slide {
    margin-left:27px;
  }

  /* the parent */
  .slick-list {
    margin-left:-27px;
  }

Ответ 4

Просто исправьте CSS:

/* the slides */
.slick-slider {
    overflow: hidden;
}
/* the parent */
.slick-list {
    margin: 0 -9px;
}
/* item */  
.item{
    padding: 0 9px;
}

Ответ 5

В скользящем слайде есть внутренний div, который можно использовать для создания промежутков между слайдами, не нарушая дизайн:

.slick-list {margin: 0 -5px;}
.slick-slide>div {padding: 0 5px;}

Ответ 6

С помощью псевдоклассов удаляются поля из первого и последнего дочерних элементов и используется адаптивная высота true в script. Попробуйте fiddle

Еще один Демо

 $('.single-item').slick({
        initialSlide: 3,
        infinite: false,
        adaptiveHeight: true
    });

Ответ 7

Добавить

centerPadding: '0'

Настройки ползунка будут выглядеть так:

$('.phase-slider-one').slick({
     centerMode: true,
     centerPadding: '0',
     responsive: [{breakpoint: 1024,},{breakpoint: 600,},{breakpoint: 480,}]
});

Спасибо

Ответ 8

Начиная с последних версий вы можете просто добавить margin в свой слайд:

.slick-slide {
  margin: 0 20px;
}

Нет необходимости в каких-либо отрицательных полях, так как скользкий расчет основан на элементах outterHeight.

Ответ 9

Попробуйте использовать псевдо-классы типа first-child и last-child для удаления дополнительных дополнений от первого и последнего дочерних элементов.

Осмотрите сгенерированный код слайдера и попробуйте удалить его.

Надеюсь, это поможет!!!

Ответ 10

Если вам нужно больше места между слайдами + не уменьшать ширину слайда, это означает, что вам нужно будет показывать меньше слайдов. В таком случае просто добавьте параметр, чтобы показывать меньше слайдов

    $('.single-item').slick({
      initialSlide: 3,
      infinite: false,
      slidesToShow: 3
    });

Другим вариантом является определение ширины слайда с помощью css без установки количества показов слайдов.

Ответ 11

Например: Добавьте этот data-attr в свой основной slick div: data-space = "7"

                    $('[data-space]').each(function () {
                        var $this = $(this),
                            $space = $this.attr('data-space');

                        $('.slick-slide').css({
                            marginLeft: $space + 'px',
                            marginRight: $space + 'px'
                        });

                        $('.slick-list').css({
                            marginLeft: -$space + 'px',
                            marginRight: -$space/2 + 'px'
                        })
                    });

Ответ 12

Улучшение, основанное на посте от Dishan TD (который также удаляет вертикальное поле):

  .slick-slide{
    margin-left:  15px;
    margin-right:  15px;
  }

  .slick-list {
    margin-left: -15px;
    margin-right: -15px;
    pointer-events: none;
  }

Примечание: указатель-события был необходим в моем случае, чтобы можно было нажать на стрелку влево.