Swiper 可以實現網頁元素的輪播效果,本篇大概紀錄一下安裝的方式,以及一些常用的參數設定。
Swiper 是一個製作網頁輪播效果的 JavaScript 套件。
安裝 CDN 透過 CDN 方式安裝 Swiper 時,需要同時引入 swiper-bundle.min.css
與 swiper-bundle.min.js
兩個檔案,引入壓縮後的版本即可。
1 2 3 4 <link rel ="stylesheet" href ="https://unpkg.com/swiper@8/swiper-bundle.min.css" /> <script src ="https://unpkg.com/swiper@8/swiper-bundle.min.js" > </script >
NPM
基礎結構 HTML 使用 Swiper 時,swiper-container
、swiper-wrapper
、swiper-slide
三者為必要存在的元素。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <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 >
需要進行輪播的內容,會放在 swiper-slide
之中,數量可依需求自行新增。
JavaScript Swiper 在初始化時,會帶入一個 DOM / CSS Selector,以及一個參數(字串),如下:
1 let swiper = new Swiper( swiperContainer, parameter );
官方範例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 const swiper = 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" } });
設定容器寬度 可自訂意義 Swiper 容器大小,範例如下:
1 2 3 4 .swiper { width : 600px ; height : 300px ; }
常見參數 除了先前官方範例提到的參數之外,以下列出一些在不同的版型下,可能會使用到的參數設定,更多可使用的參數可查閱官方文件 。
effect
主要用來變更輪播時的轉場效果,預設值為 slide
,其他可使用效果還有 fade
、cube
、coverflow
、flip
、creative
、cards
。
autoplay
該參數屬於一個物件,會依據給予的屬性設定來自定義自動輪播的形式,範例如下:
1 2 3 4 5 6 const swiper = new Swiper(".swiper-container" , { autoplay : { delay : 5000 , disableOnInteraction : false , } });
slidesPerView
該參數可以決定輪播時,同時顯示的 swiper-slide
數量,範例如下:
1 2 3 const swiper = new Swiper(".swiper-container" , { slidesPerView : 3 });
加入參數 slidesPerView
後,swiper-slide
的寬度會根據 swiper-container 來均分。
breakpoints
加入該參數後,配合參數 slidesPerView
可根據所設定的斷點來達成響應式的效果,範例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 const swiper = new Swiper('.swiper' , { slidesPerView : 1 , breakpoints : { 768 : { slidesPerView : 2 }, 992 : { slidesPerView : 3 } } });
spacebetween
該參數可以設定每個 swiper-slide
之間的間隙,範例如下:
1 2 3 4 5 6 7 8 9 10 const swiper = new Swiper('.swiper' , { slidesPerView : 2 , spacebetween : 16 , breakpoints : { 768 : { slidesPerView : 3 , spacebetween : 24 } } });