使用 Angular slick carousel 组件实现分层幻灯片

joy*_*joy 6 jquery angularjs slick.js

我正在使用angular-slick(它基于基于 jquery 的slick)来实现轮播控制。我有实现分层幻灯片的要求,即一次应显示一张幻灯片,而应在左右两侧半隐藏地显示两张幻灯片。在点击 prev/nex 时,underneeth 幻灯片应位于顶部,顶部的幻灯片应位于下方。

我试图使用 css/code 自定义它,但无法弄清楚该怎么做。以下是我的要求的模型。我还查看了http://vasyabigi.github.io/angular-slick/ 上给出的示例 在此处输入图片说明

请指教。

小智 6

您应该能够通过 CSS 转换来做到这一点。基本上,缩小非活动幻灯片并为它们提供适当的 z-index 会导致这种效果。例如:

$('.center').slick({
  arrows: true,
  centerMode: true,
  infinite: true,
  centerPadding: '250px',
  slidesToShow: 1,
  speed: 500,
  dots: true,
});
Run Code Online (Sandbox Code Playgroud)
.content {
  width: 800px;
  margin: auto;
  background-color: #EBEBEB;
  height: 480px;
}
.slick-slide:not(.slick-center) {
  z-index: 0;
  transform: scale(0.8);
}
.slick-active.slick-center+.slick-slide+.slick-slide {
  z-index: 1;
}
.slick-active.slick-center+.slick-slide,
.slick-center+.slick-cloned {
  z-index: 2;
}
.slick-center {
  z-index: 3;
}
.slick-slide {
  position: relative;
  transition: transform 80ms;
}
.slide img {
  position: relative;
  transform: translateX(-50%);
  left: 50%;
}
.slick-prev {
  left: 10% !important;
}
.slick-next {
  right: 10% !important;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="http://cdn.jsdelivr.net/jquery.slick/1.5.5/slick.css" rel="stylesheet" />
<link href="http://cdn.jsdelivr.net/jquery.slick/1.5.5/slick-theme.css" rel="stylesheet" />
<script src="http://cdn.jsdelivr.net/jquery.slick/1.5.5/slick.min.js"></script>

<div class="content">
  <div class="center">
    <div>
      <div class="slide">
        <img src="http://lorempixel.com/540/303/abstract" />
      </div>

    </div>
    <div>
      <div class="slide">
        <img src="http://lorempixel.com/540/303/animals" />
      </div>

    </div>
    <div>
      <div class="slide">
        <img src="http://lorempixel.com/540/303/business" />
      </div>

    </div>
    <div>
      <div class="slide">
        <img src="http://lorempixel.com/540/303/cats" />
      </div>

    </div>
    <div>
      <div class="slide">
        <img src="http://lorempixel.com/540/303/city" />
      </div>

    </div>
    <div>
      <div class="slide">
        <img src="http://lorempixel.com/540/303/food" />
      </div>

    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

这个例子没有使用angular-slick,但原理应该是一样的。