1. 程式人生 > >swiper的圖冊滑動效果

swiper的圖冊滑動效果

首先,我們要做的效果是這樣子的!!~~

swiper4.0+API 地址 →→ 戳這裡

<script language="javascript"> 
var mySwiper = new Swiper('.swiper-container',{
  effect : 'coverflow',
  slidesPerView: 3,
  centeredSlides: true,
  coverflowEffect: {
    rotate: 30,
    stretch: 10,
    depth: 60,
    modifier: 2,
    slideShadows : true
  },
})
</script>

引數介紹:

rotate:slide做3d旋轉時Y軸的旋轉角度。預設50。

stretch:每個slide之間的拉伸值,越大slide靠得越緊。 預設0。

depth:slide的位置深度。值越大z軸距離越遠,看起來越小。 預設100。

modifier:depthrotatestretch的倍率,預設1。

slideShadows:開啟slide陰影。預設 true。

效果圖:

我們將 rotate 的值設為 0 ,depth 的值設高一點,好像就能實現圖1的效果了。

修改後的部分引數:

coverflowEffect: {
    rotate: 0,
    stretch: 10,
    depth: 160,
    modifier: 2,
    slideShadows : true
},

效果如圖:

我們可以看到預設引數裡有一項 slidesPerView: 3, 它的意思是,設定 slider 容器同時顯示 slides 的數量,簡單地說就是總寬度 swiper-wrapper 除以單個 swiper-slide 的寬度所得到的數值。

我想應該是該效果下,對後面的 sliders 進行了縮放,寬度小於設定的寬度,才會顯示多個。

我把 slidesPerView 的值設定為 2 ,就可以只顯示3個了,您可以根據自己的情況進行設定。

還有一個問題,就是預設情況下,第一個是居中顯示的,這樣前面就會有一塊空白。

怎麼讓它補齊空白,直接顯示第二個呢?

我們可以用 initialSlide 屬性,設定初始化時 slide 的索引。這裡的數值是根據下標判斷的,我們要直接顯示第二個, 可以將它的設定為 1 。

完整程式碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1">
    <link rel="stylesheet" type="text/css" href="https://www.swiper.com.cn/dist/css/swiper.min.css">
    <style type="text/css">
        *, *:before, *:after {
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
        }
        body {
            margin: 0;
            padding: 0;
        }
        .swiper-container {
            width: 80%;
            padding-top: 10px;
            padding-bottom: 30px;
        }
        .swiper-slide {
            background-position: center;
            background-size: cover;
            width: 240px;
            height: 320px;

        }
    </style>
</head>
<body>
    <div class="swiper-container">
        <div class="swiper-wrapper">
            <div class="swiper-slide" style="background-image:url('http://www.yuetuvip.com/img/banner4.jpg')">
            </div>
			<div class="swiper-slide" style="background-image:url('http://www.yuetuvip.com/img/banner3.jpg')">
			</div>
			<div class="swiper-slide" style="background-image:url('http://www.yuetuvip.com/img/banner2.jpg')">
			</div>
			<div class="swiper-slide" style="background-image:url('http://www.yuetuvip.com/img/banner1.jpg')">
			</div>
			<div class="swiper-slide" style="background-image:url('http://www.yuetuvip.com/img/banner5.jpg')">
			</div>
        </div>
    </div>
    <script src="https://www.swiper.com.cn/dist/js/swiper.min.js"></script>
    <script type="text/javascript">
		var mySwiper = new Swiper('.swiper-container',{
		pagination: '.swiper-pagination',
		grabCursor: true,
		loop: true,
		initialSlide:1,
		effect : 'coverflow',
		slidesPerView: 2,
		loop: true,
		centeredSlides: true,
		coverflowEffect: {
			rotate: 0,
			stretch: 10,
			depth: 160,
			modifier: 2,
			slideShadows : true
		},
		})
    </script>
</body>
</html>

換可以加其它的一些可控按鈕之類的!!大家自己挖掘吧!!!