光滑:如何编辑幻灯片之间的边距?

时间:2017-04-10 18:43:24

标签: javascript jquery html css

我想知道是否可以使用光滑的滑块创建这样的东西?

  +-------+ +-------+
  |       | |       |
  |    +-------+    |
  +----|       |----+
       |       |
       +-------+

问题在于设置幻灯片之间的边距。我发现How add spaces between Slick carousel item解释了你可以用这种方式修改保证金:

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

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

但是,我无法将保证金更改为负值,因此第3个元素将位于两个之上而不是仅位于它们之间。

有没有人碰巧这样做或知道任何类似的参考链接?

1 个答案:

答案 0 :(得分:4)

所以,如果有人仍然感兴趣,我能够以这种方式得到我想要的东西:

#wrapper {
    width: 100%;
    display: table;
    table-layout: fixed;
    border-collapse: collapse;
    padding: 10px; /* important !! */
}

.slick-slide { /* spacing in between each slide */
    margin: 0 -10px;
}

.slick-list { /* spacing in between the group of slides */
    padding: 0 20px; 
}

.slick-track { /* spacing for the slider itself */
    min-height: 600px;
}

.slide {
    position: relative;
    float: left;
}

.slide:nth-child(3n+2) {
    top: 10em;
    z-index: 1;
}

凭借这些风格,我能够得到我想要的东西。 但是,兄弟列表中的每张第一张幻灯片仍然显示。因此,我使用了一个脚本,它基本上隐藏了非活动幻灯片,只显示了可见的幻灯片。

    $(document).ready(function(){

        /* runs only once */ 
        $(".slide").css({opacity: 0}); 
        $(".slick-active").css({opacity: 1});

        /* runs after slides are being changed */
        $('#wrapper').on('afterChange', function(event, slick, currentSlide, nextSlide){
            $(".slide").animate({opacity: 0}, 100); 
            $(".slick-active").animate({opacity: 1}, 300);
        });
    })