仿寫京東之所有輪播圖一個Swiper搞定

京東輪播圖

  • 以下輪播圖等等都可以用Swiper解決
    京東實例
    在這裏插入圖片描述
    在這裏插入圖片描述

Swiper講解

Swiper5 使用方法

  1. 首先加載插件,需要用到的文件有swiper.min.js和swiper.min.css文件。可下載Swiper文件或使用CDN。
<!DOCTYPE html>
<html>
<head>
    ...
    <link rel="stylesheet" href="dist/css/swiper.min.css">
</head>
<body>
    ...
    <script src="dist/js/swiper.min.js"></script>
    ...
</body>
</html>
  1. HTML內容
<div class="swiper-container">
    <div class="swiper-wrapper">
        <div class="swiper-slide">Slide 1</div>
        <div class="swiper-slide">Slide 2</div>
        <div class="swiper-slide">Slide 3</div>
    </div>
    <!-- 如果需要分頁器 -->
    <div class="swiper-pagination"></div>
    
    <!-- 如果需要導航按鈕 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
    
    <!-- 如果需要滾動條 -->
    <div class="swiper-scrollbar"></div>
</div>
導航等組件可以放在container之外
  1. 你可能想要給Swiper定義一個大小,當然不要也行。
.swiper-container {
    width: 600px;
    height: 300px;
} 
  1. 初始化Swiper:最好是挨着</body>標籤
...
<script>        
  var mySwiper = new Swiper ('.swiper-container', {
    direction: 'vertical', // 垂直切換選項
    loop: true, // 循環模式選項
    
    // 如果需要分頁器
    pagination: {
      el: '.swiper-pagination',
    },
    
    // 如果需要前進後退按鈕
    navigation: {
      nextEl: '.swiper-button-next',
      prevEl: '.swiper-button-prev',
    },
    
    // 如果需要滾動條
    scrollbar: {
      el: '.swiper-scrollbar',
    },
  })        
  //不需要的模塊可以刪除
  </script>
</body>
  1. 或者創建一個專門寫輪播圖代碼的js,:最好是挨着</body>標籤
    <script src="./js/lunbotu.js"></script>
</body>
  1. 完成。恭喜你,現在你的Swiper應該已經能正常切換了。

Swiper插件相關配置選項

垂直切換選項

  • direction: ‘vertical’, // 垂直切換選項
    默認horizontal
    可設置水平(horizontal)或垂直(vertical)。

循環模式選項

  • loop: true, // 循環模式選項
    默認false;
    設置爲true 則開啓loop模式。loop模式:會在原本slide前後複製若干個slide(默認一個)並在合適的時候切換,讓Swiper看起來是循環的。
    loop模式在與free模式同用時會產生抖動,因爲free模式下沒有複製slide的時間點。

自動輪播

-autoplay 默認:false

  • 第一種:autoplay: true, //等同於以下設置
  • 第二種: autoplay: {
    delay: 3000,
    //3秒輪播一次
    stopOnLastSlide: false,
    disableOnInteraction: false,
    // 觸碰後自動切換也不會停止
    },
  • disableOnInteraction 用戶操作swiper之後,是否禁止autoplay。默認爲true:停止。

slide切換效果

<div class=“swiper-slide”>Slide 1
<div class=“swiper-slide”>Slide 2
<div class=“swiper-slide”>Slide 3

  • slide的切換效果,默認爲"slide"(位移切換),可設置爲’slide’(普通切換、默認),“fade”(淡入)“cube”(方塊)“coverflow”(3d流)“flip”(3d翻轉)。
  • 京東圖片-SW1中圖片切換是淡入淡出
  // 淡入淡出
  effect: 'fade',
  fadeEffect: {
      crossFade: true,
  },

分頁器點擊切換和滑上切換

Swiper點擊分頁器切換slide

<div class=“swiper-slide”>Slide 1
<div class=“swiper-slide”>Slide 2
<div class=“swiper-slide”>Slide 3

  • 分頁器變爲點擊切換,加一段下面JS
    • clickableClass 可點擊的pagination的類名。
    // 如果需要分頁器
    pagination: {
        el: '.swiper-pagination',
        clickable: true,
        clickableClass: 'my-pagination-clickable',
    },

Swiper點擊分頁器切換slide改成滑上切換

  • 分頁器由點擊切換改成滑上切換,加一段下面JS
//滑上分頁器小圓點span
$(".swiper-pagination .swiper-pagination-bullet").hover(function () {
    $(this).click(); //鼠標劃上去之後,自動觸發點擊事件來模仿鼠標劃上去的事件
})

更改輪播圖CSS樣式

  • 例子
    • html
      在這裏插入圖片描述
    • less
      在這裏插入圖片描述

一個頁面設置多個輪播圖

  1. html中,只需要給不同輪播圖的html代碼加不同id
    在這裏插入圖片描述
  2. JS中,只需要把每一個的第一個參數,換成你自定義每一個輪播圖的id就好
    在這裏插入圖片描述

京東輪播圖-Swiper代碼

Sw1

                    <!--  swiper1-->
                    <div class="swiper-container" id="sw1">
                        <div class="swiper-wrapper">
                            <div class="swiper-slide"><img src="./images/banner2.jpg" alt=""></div>
                            <div class="swiper-slide"><img src="./images/banner3.jpg" alt=""></div>
                            <div class="swiper-slide"><img src="./images/banner2.jpg" alt=""></div>
                            <div class="swiper-slide"><img src="./images/banner4.jpg" alt=""></div>
                            <div class="swiper-slide"><img src="./images/banner5.jpg" alt=""></div>
                            <div class="swiper-slide"><img src="./images/banner6.jpg" alt=""></div>
                            <div class="swiper-slide"><img src="./images/banner7.jpg" alt=""></div>
                            <div class="swiper-slide"><img src="./images/banner8.jpg" alt=""></div>
                        </div>
                        <!-- 如果需要分頁器 -->
                        <div class="swiper-pagination"></div>

                        <!-- 如果需要導航按鈕 -->
                        <div class="swiper-button-prev"></div>
                        <div class="swiper-button-next"></div>
                    </div>
// SW1  中
var mySwiper1 = new Swiper('#sw1', {
    direction: 'horizontal', // 垂直切換選項
    loop: true, // 循環模式選項
    // autoplay: true, //等同於以下設置
    autoplay: {
        delay: 3000,
        stopOnLastSlide: false,
        // 觸碰後自動切換也不會停止
        disableOnInteraction: false,
    },
    // 淡入淡出
    effect: 'fade',
    fadeEffect: {
        crossFade: true,
    },
    // 如果需要分頁器
    pagination: {
        el: '.swiper-pagination',
        clickable: true,
        clickableClass: 'my-pagination-clickable',
    },
    // 如果需要前進後退按鈕
    navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
    },
    // // 如果需要滾動條
    // scrollbar: {
    //     el: '.swiper-scrollbar',
    // },
})

Sw2

     <div class="swiper-container" id="sw2">
                        <div class="swiper-wrapper">
                            <div class="swiper-slide">
                                <a href="javascript:;">
                                    <img src="./images/sw21.jpg" alt="">
                                </a>
                                <a href="javascript:;">
                                    <img src="./images/sw22.jpg" alt="">
                                </a>
                                <a href="javascript:;">
                                    <img src="./images/sw23.jpg" alt="">
                                </a>
                            </div>
                            <div class="swiper-slide">
                                <a href="javascript:;">
                                    <img src="./images/sw22.jpg" alt="">
                                </a>
                                <a href="javascript:;">
                                    <img src="./images/sw23.jpg" alt="">
                                </a>
                                <a href="javascript:;">
                                    <img src="./images/sw21.jpg" alt="">
                                </a>
                            </div>
                            <div class="swiper-slide">
                                <a href="javascript:;">
                                    <img src="./images/sw23.jpg" alt="">
                                </a>
                                <a href="javascript:;">
                                    <img src="./images/sw21.jpg" alt="">
                                </a>
                                <a href="javascript:;">
                                    <img src="./images/sw22.jpg" alt="">
                                </a>
                            </div>
                        </div>
                        <!-- 如果需要導航按鈕 -->
                        <div class="swiper-button-prev"></div>
                        <div class="swiper-button-next"></div>
                    </div>
var mySwiper2 = new Swiper('#sw2', {
    direction: 'horizontal', // 垂直切換選項
    loop: true, // 循環模式選項
    // autoplay: true, //等同於以下設置
    autoplay: {
        delay: 3000,
        stopOnLastSlide: false,
        // 觸碰後自動切換也不會停止
        disableOnInteraction: false,
    },
    // 淡入淡出
    effect: 'fade',
    fadeEffect: {
        crossFade: true,
    },
    // 如果需要前進後退按鈕
    navigation: {
        nextEl: '.swiper-button-next',
        prevEl: '.swiper-button-prev',
    },
})

API文檔

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章