# Swiper
[中文官網](https://www.swiper.com.cn/)
#### CDN
```htmlembedded=
<link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css">
<script src="https://unpkg.com/swiper/swiper-bundle.min.js"> </script>
```
#### 基礎結構
```htmlembedded
<!-- 單純做自動輪播 -->
<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>
<!-- 其他需求 -->
<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>
```
```javascript=
<script>
let mySwiper = new Swiper ('.swiper-container', options);
</script>
```
#### 參數設定紀錄
```javascript=
let carousel = new Swiper('.carousel-container', {
autoHeight: true, //enable auto height
slidesPerView: 'auto', // 自動根據容器寬度展示內容
autoplay: false, // 自動換頁
speed: 1800, // 換頁速度
delay: 3000, // 每頁停留時間 預設 3000
loop: true, // 無限輪播
effect: 'fade', // 換頁動態效果 預設 slide (除這兩種也沒啥其他好選擇了)
stopOnLastSlide: true, // 最後一頁時停止播放 預設 false (會反向轉回第一頁)
allowTouchMove: false, // 禁止被拖曳
mousewheel: true, // 接受滾輪滾動觸發換頁 預設 false (可設定方向)
grabCursor: true, // 開啟時用戶鼠標 hover 時會變成手形
parallax: true, // 允許滾動視差 (需搭配 html data 參數)
spaceBetween: 15, // 每一塊的間距
direction: 'vertical', // 切换成垂直
pagination: { // 分頁點點
el: '.swiper-pagination',
clickable: true,
},
navigation: { // 若需要按鈕
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
scrollbar: { // 若需要滾動條
el: '.swiper-scrollbar',
},
breakpoints: { // 斷點顯示設定
320: { // 當裝置寬大於 320
slidesPerView: 2, // 要看見幾頁內容 (可用小數點讓使用者知道可滑動)
spaceBetween: 10
},
768: { // 當裝置寬大於 768
slidesPerView: 3,
spaceBetween: 20
},
1200: { // 當裝置寬大於 1200
slidesPerView: 4,
spaceBetween: 30
}
},
on:{
click: function(){
// do something
}
// 有許多事件類型可觸發
}
});
```
#### 方便複製版
```javascript=
let carousel = new Swiper('.swiper-container', {
autoHeight: true,
slidesPerView: 'auto',
navigation: {
nextEl: '.swiper-button-next',
prevEl: '.swiper-button-prev',
},
breakpoints: {
320: {
slidesPerView: 2,
spaceBetween: 10
},
768: {
slidesPerView: 3,
spaceBetween: 20
},
1200: {
slidesPerView: 4,
spaceBetween: 30
}
},
autoplay: false,
speed: 1800,
delay: 3000,
loop: true,
stopOnLastSlide: true,
allowTouchMove: false,
mousewheel: true,
grabCursor: true,
parallax: true,
spaceBetween: 15,
direction: 'vertical',
effect: 'fade',
pagination: {
el: '.swiper-pagination',
clickable: true,
},
scrollbar: {
el: '.swiper-scrollbar',
},
on:{
click: function(){
// do something
}
// 有許多事件類型可觸發
}
});
```
#### 操作 API 紀錄
```javascript=
carousel.slideNext(speed,cb); // 往下一頁滑動 (可不傳任何參數)
```