这是一款基于slick旋转木马插件来制作的jQuery幻灯片特效。该幻灯片特效使用缩放和淡入淡出的过渡动画效果,它支持移动触摸设备,效果非常炫酷。

slick是一款支持移动设备的旋转木马插件。slick功能强大,它提供众多的参数,使你能够轻松的制作出各种旋转木马和幻灯片特效。

使用方法

在页面中引入slick插件的相关文件。

<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.css'>
<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick-theme.min.css'>
<script src='js/jquery.min.js'></script>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.6.0/slick.min.js'></script>                  
                
HTML结构

该幻灯片的HTML结构如下:

<div class="slideshow">
  <div class="slider">
    <div class="item">
      <img src="1.jpg" />
    </div>
    <div class="item">
      <img src="2.jpg" />
    </div>
    <div class="item">
      <img src="3.jpg" />
    </div>
    <div class="item">
      <img src="4.jpg" />
    </div>
  </div>
</div>     
                
CSS样式

为幻灯片添加下面的必要CSS样式:幻灯片的过渡动画使用自定义的贝兹曲线函数。另外图片默认被放大1.2倍,当前激活的图片会被添加.slick-active class,此时图片被缩放会原来的大小。

.slideshow {
  position: relative;
  z-index: 1;
  height: 100%;
  max-width: 700px;
  margin: 50px auto;
}
.slideshow * {
  outline: none;
}
.slideshow .slider {
  box-shadow: 0 20px 50px -25px black;
}
.slideshow .slider-track {
  -webkit-transition: all 1s cubic-bezier(0.7, 0, 0.3, 1);
  transition: all 1s cubic-bezier(0.7, 0, 0.3, 1);
}
.slideshow .item {
  height: 100%;
  position: relative;
  z-index: 1;
}
.slideshow .item img {
  width: 100%;
  -webkit-transition: all 1s cubic-bezier(0.7, 0, 0.3, 1);
  transition: all 1s cubic-bezier(0.7, 0, 0.3, 1);
  -webkit-transform: scale(1.2);
          transform: scale(1.2);
}
.slideshow .item.slick-active img {
  -webkit-transform: scale(1);
          transform: scale(1);
}                
                
初始化插件

在页面DOM元素加载完毕之后,可以通过下面的方法来初始化slick插件。

$('.slider').slick({
    autoplay:true,
    autoplaySpeed:3000,
    draggable: true,
    arrows: false,
    dots: true,
    fade: true,
    speed: 900,
    infinite: true,
    cssEase: 'cubic-bezier(0.7, 0, 0.3, 1)',
    touchThreshold: 100
})