🎄🎅 節日特賣:最高 5 折優惠 UI Initiative, Swiper Studio 以及 t0ggles 🎅🎄

Swiper API

如果您要從 Swiper 9 升級到 Swiper 10,請查看 Swiper 10 遷移指南

Swiper 完整 HTML 佈局

<!-- Slider main container -->
<div class="swiper">
  <!-- Additional required wrapper -->
  <div class="swiper-wrapper">
    <!-- Slides -->
    <div class="swiper-slide">Slide 1</div>
    <div class="swiper-slide">Slide 2</div>
    <div class="swiper-slide">Slide 3</div>
    ...
  </div>
  <!-- If we need pagination -->
  <div class="swiper-pagination"></div>

  <!-- If we need navigation buttons -->
  <div class="swiper-button-prev"></div>
  <div class="swiper-button-next"></div>

  <!-- If we need scrollbar -->
  <div class="swiper-scrollbar"></div>
</div>

樣式

Swiper 套件包含不同的 CSS、Less 和 SCSS 樣式集

CSS 樣式

捆綁版本用的 CSS 樣式

  • swiper-bundle.css - 所有 Swiper 樣式,包含所有模組的樣式(例如導覽、分頁等)
  • swiper-bundle.min.css - 與前一個相同,但已縮小

捆綁版本用的 CSS 樣式(套件導入)

  • swiper/css - 所有 Swiper 樣式,包含所有模組的樣式(例如導覽、分頁等)
  • swiper/css/bundle - 與前一個相同,但已縮小

核心版本和模組用的 CSS 樣式(套件導入)

  • swiper/css - 只有核心 Swiper 樣式
  • swiper/css/a11y - A11y 模組所需的樣式
  • swiper/css/autoplay - 自動播放模組所需的樣式
  • swiper/css/controller - 控制器模組所需的樣式
  • swiper/css/effect-cards - 卡片效果模組所需的樣式
  • swiper/css/effect-coverflow - 覆蓋流效果模組所需的樣式
  • swiper/css/effect-creative - 創意效果模組所需的樣式
  • swiper/css/effect-cube - 立方體效果模組所需的樣式
  • swiper/css/effect-fade - 淡入淡出效果模組所需的樣式
  • swiper/css/effect-flip - 翻轉效果模組所需的樣式
  • swiper/css/free-mode - 自由模式模組所需的樣式
  • swiper/css/grid - 網格模組所需的樣式
  • swiper/css/hash-navigation - 雜湊導覽模組所需的樣式
  • swiper/css/history - 歷史記錄模組所需的樣式
  • swiper/css/keyboard - 鍵盤模組所需的樣式
  • swiper/css/manipulation - 操作模組所需的樣式
  • swiper/css/mousewheel - 滑鼠滾輪模組所需的樣式
  • swiper/css/navigation - 導覽模組所需的樣式
  • swiper/css/pagination - 分頁模組所需的樣式
  • swiper/css/parallax - 視差模組所需的樣式
  • swiper/css/scrollbar - 捲軸模組所需的樣式
  • swiper/css/thumbs - 縮圖模組所需的樣式
  • swiper/css/virtual - 虛擬模組所需的樣式
  • swiper/css/zoom - 縮放模組所需的樣式

Less 樣式

Less 樣式是核心版本和模組的獨立樣式(套件導入)

  • swiper/less - 只有核心 Swiper 樣式
  • swiper/less/bundle - 所有 Swiper 樣式,包含所有模組的樣式(例如導覽、分頁等)
  • swiper/less/a11y - A11y 模組所需的樣式
  • swiper/less/autoplay - 自動播放模組所需的樣式
  • swiper/less/controller - 控制器模組所需的樣式
  • swiper/less/effect-cards - 卡片效果模組所需的樣式
  • swiper/less/effect-coverflow - 覆蓋流效果模組所需的樣式
  • swiper/less/effect-creative - 創意效果模組所需的樣式
  • swiper/less/effect-cube - 立方體效果模組所需的樣式
  • swiper/less/effect-fade - 淡入淡出效果模組所需的樣式
  • swiper/less/effect-flip - 翻轉效果模組所需的樣式
  • swiper/less/free-mode - 自由模式模組所需的樣式
  • swiper/less/grid - 網格模組所需的樣式
  • swiper/less/hash-navigation - 雜湊導覽模組所需的樣式
  • swiper/less/history - 歷史記錄模組所需的樣式
  • swiper/less/keyboard - 鍵盤模組所需的樣式
  • swiper/less/manipulation - 操作模組所需的樣式
  • swiper/less/mousewheel - 滑鼠滾輪模組所需的樣式
  • swiper/less/navigation - 導覽模組所需的樣式
  • swiper/less/pagination - 分頁模組所需的樣式
  • swiper/less/parallax - 視差模組所需的樣式
  • swiper/less/scrollbar - 捲軸模組所需的樣式
  • swiper/less/thumbs - 縮圖模組所需的樣式
  • swiper/less/virtual - 虛擬模組所需的樣式
  • swiper/less/zoom - 縮放模組所需的樣式

SCSS 樣式

SCSS 樣式也是核心版本和模組的獨立樣式(套件導入)

  • swiper/scss - 只有核心 Swiper 樣式
  • swiper/scss/bundle - 所有 Swiper 樣式,包含所有模組的樣式(例如導覽、分頁等)
  • swiper/scss/a11y - A11y 模組所需的樣式
  • swiper/scss/autoplay - 自動播放模組所需的樣式
  • swiper/scss/controller - 控制器模組所需的樣式
  • swiper/scss/effect-cards - 卡片效果模組所需的樣式
  • swiper/scss/effect-coverflow - 覆蓋流效果模組所需的樣式
  • swiper/scss/effect-creative - 創意效果模組所需的樣式
  • swiper/scss/effect-cube - 立方體效果模組所需的樣式
  • swiper/scss/effect-fade - 淡入淡出效果模組所需的樣式
  • swiper/scss/effect-flip - 翻轉效果模組所需的樣式
  • swiper/scss/free-mode - 自由模式模組所需的樣式
  • swiper/scss/grid - 網格模組所需的樣式
  • swiper/scss/hash-navigation - 雜湊導覽模組所需的樣式
  • swiper/scss/history - 歷史記錄模組所需的樣式
  • swiper/scss/keyboard - 鍵盤模組所需的樣式
  • swiper/scss/manipulation - 操作模組所需的樣式
  • swiper/scss/mousewheel - 滑鼠滾輪模組所需的樣式
  • swiper/scss/navigation - 導覽模組所需的樣式
  • swiper/scss/pagination - 分頁模組所需的樣式
  • swiper/scss/parallax - 視差模組所需的樣式
  • swiper/scss/scrollbar - 捲軸模組所需的樣式
  • swiper/scss/thumbs - 縮圖模組所需的樣式
  • swiper/scss/virtual - 虛擬模組所需的樣式
  • swiper/scss/zoom - 縮放模組所需的樣式

初始化 Swiper

現在,當我們有了 Swiper 的 HTML 時,我們需要使用以下函式來初始化它

new Swiper(swiperContainer, parameters) - 使用選項初始化 swiper

  • swiperContainer - Swiper 容器 HTML 元素的 HTMLElement 或字串 (使用 CSS 選擇器)。必填。
  • parameters - 物件 - 具有 Swiper 參數的物件。選填。
  • 方法會返回初始化的 Swiper 實例

例如

const swiper = new Swiper('.swiper', {
  speed: 400,
  spaceBetween: 100,
});

您初始化 Swiper 之後,可以存取其 HTMLElement 上的 Swiper 實例。它是 Swiper HTML 容器元素的 swiper 屬性

const swiper = document.querySelector('.swiper').swiper;

// Now you can use all slider methods like
swiper.slideNext();

參數

讓我們看看所有可用參數的清單

名稱類型預設值說明
a11y任何

具有 a11y 參數的物件或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  a11y: {
    prevSlideMessage: 'Previous slide',
    nextSlideMessage: 'Next slide',
  },
});
allowSlideNext布林值true

設定為 false 以停用向下一張投影片方向滑動(向右或向下)

allowSlidePrev布林值true

設定為 false 以停用向上張投影片方向滑動(向左或向上)

allowTouchMove布林值true

如果為 false,則切換投影片的唯一方法是使用外部 API 函式,例如 slidePrev 或 slideNext

autoHeight布林值false

設定為 true,滑塊包裝器將使其高度適應目前活動投影片的高度

autoplay任何

具有自動播放參數的物件或布林值 true 以啟用預設設定

const swiper = new Swiper('.swiper', {
 autoplay: {
   delay: 5000,
 },
});
breakpoints物件

允許為不同的回應式斷點(螢幕尺寸)設定不同的參數。並非所有參數都可以在斷點中變更,只有那些不需要不同佈局和邏輯的參數,例如 slidesPerViewslidesPerGroupspaceBetweengrid.rowsloopeffect 等參數將無法運作

const swiper = new Swiper('.swiper', {
  // Default parameters
  slidesPerView: 1,
  spaceBetween: 10,
  // Responsive breakpoints
  breakpoints: {
    // when window width is >= 320px
    320: {
      slidesPerView: 2,
      spaceBetween: 20
    },
    // when window width is >= 480px
    480: {
      slidesPerView: 3,
      spaceBetween: 30
    },
    // when window width is >= 640px
    640: {
      slidesPerView: 4,
      spaceBetween: 40
    }
  }
})
const swiper = new Swiper('.swiper', {
  slidesPerView: 1,
  spaceBetween: 10,
  // using "ratio" endpoints
  breakpoints: {
    '@0.75': {
      slidesPerView: 2,
      spaceBetween: 20,
    },
    '@1.00': {
      slidesPerView: 3,
      spaceBetween: 40,
    },
    '@1.50': {
      slidesPerView: 4,
      spaceBetween: 50,
    },
  }
});
breakpointsBase任何'window'

斷點的基礎(測試版)。可以是 windowcontainer。如果設定為 window(預設),則斷點鍵表示視窗寬度。如果設定為 container,則斷點鍵會被視為 swiper 容器寬度

cardsEffect任何

具有卡片效果參數的物件

const swiper = new Swiper('.swiper', {
  effect: 'cards',
  cardsEffect: {
    // ...
  },
});
centerInsufficientSlides布林值false

啟用時,如果投影片數量少於 slidesPerView,則會將投影片置中。不適合在 loop 模式和 grid.rows 中使用

centeredSlides布林值false

如果為 true,則活動投影片將會置中,而不總是位於左側。

centeredSlidesBounds布林值false

如果為 true,則活動的幻燈片將會置中,而不會在滑塊的開頭和結尾添加間隙。需要 centeredSlides: true。不適用於 looppagination

containerModifierClass字串'swiper-'

可根據不同參數添加到 swiper 容器的修飾符 CSS 類別的開頭。

controller任何

包含控制器參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  controller: {
    inverse: true,
  },
});
coverflowEffect任何

包含 Coverflow 效果參數的物件。

const swiper = new Swiper('.swiper', {
  effect: 'coverflow',
  coverflowEffect: {
    rotate: 30,
    slideShadows: false,
  },
});
createElements布林值false

啟用後,Swiper 會自動將幻燈片包裝在 swiper-wrapper 元素中,並會為已啟用的導航、分頁和捲軸建立所需的元素(使用它們各自的參數物件或布林值 true)。

creativeEffect任何

包含 Creative 效果參數的物件。

const swiper = new Swiper('.swiper', {
  effect: 'creative',
  creativeEffect: {
    prev: {
      // will set `translateZ(-400px)` on previous slides
      translate: [0, 0, -400],
    },
    next: {
      // will set `translateX(100%)` on next slides
      translate: ['100%', 0, 0],
    },
  },
});
cssMode布林值false

啟用後,它將使用現代 CSS Scroll Snap API。它不支援 Swiper 的所有功能,但在簡單的配置中,可能會帶來更好的效能。

啟用時不支援的功能如下:

  • Cube 效果
  • speed 參數可能沒有效果。
  • 所有與轉換開始/結束相關的事件(請改用 slideChange)。
  • slidesPerGroup 的支援有限。
  • simulateTouch 沒有效果,並且無法使用滑鼠「拖曳」。
  • resistance 沒有任何效果。
  • allowSlidePrev/Next
  • swipeHandler

如果將它與其他效果(特別是 3D 效果)一起使用,則必須使用 <div className="swiper-slide-transform"> 元素包裝幻燈片的內容。如果對幻燈片使用任何自訂樣式(例如背景顏色、邊框半徑、邊框等),則應在 swiper-slide-transform 元素上設定它們。

<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide">
      <!-- wrap slide content with transform element -->
      <div class="swiper-slide-transform">
        ... slide content ...
      </div>
    </div>
    ...
  </div>
</div>
<script>
const swiper = new Swiper('.swiper', {
   effect: 'flip',
   cssMode: true,
 });
</script>
cubeEffect任何

包含 Cube 效果參數的物件。

const swiper = new Swiper('.swiper', {
  effect: 'cube',
  cubeEffect: {
    slideShadows: false,
  },
});
direction'horizontal' | 'vertical''horizontal'

可以是 'horizontal''vertical'(用於垂直滑塊)。

edgeSwipeDetection字串 | 布林值false

啟用後,可以釋放 Swiper 事件,以便在應用程式中進行滑動返回操作。如果設定為 'prevent',則會阻止系統滑動返回導航。此功能僅適用於「觸控」事件(而非指標事件),因此它將在 iOS/Android 裝置上運作,而不會在具有指標(觸控)事件的 Windows 裝置上運作。

edgeSwipeThreshold數字20

從螢幕左邊緣釋放觸控事件以在應用程式中滑動返回的區域(以像素為單位)。

effect字串'slide'

轉換效果。可以是 'slide''fade''cube''coverflow''flip''creative''cards'

enabled布林值true

Swiper 最初是否啟用。當 Swiper 被停用時,它將會隱藏所有導航元素,並且不會回應任何事件和互動。

eventsPrefix字串`swiper`

Swiper 元素(網頁元件)發出的所有 DOM 事件的事件名稱前綴。

fadeEffect任何

包含 Fade 效果參數的物件。

const swiper = new Swiper('.swiper', {
  effect: 'fade',
  fadeEffect: {
    crossFade: true
  },
});
flipEffect任何

包含 Flip 效果參數的物件。

const swiper = new Swiper('.swiper', {
  effect: 'flip',
  flipEffect: {
    slideShadows: false,
  },
});
focusableElements字串'input, select, option, textarea, button, video, label'

可聚焦元素的 CSS 選擇器。如果這些元素「已聚焦」,則會停用在這些元素上的滑動。

followFinger布林值true

如果停用,則滑塊只有在您放開手指時才會動畫,當您將手指按住時,它不會移動。

freeMode任何

啟用自由模式功能。包含自由模式參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  freeMode: true,
});

const swiper = new Swiper('.swiper', {
  freeMode: {
    enabled: true,
    sticky: true,
  },
});
grabCursor布林值false

此選項可能會稍微改善桌面可用性。如果為 true,使用者會在將滑鼠懸停在 Swiper 上時看到「抓取」游標。

grid任何

包含網格參數的物件,以啟用「多行」滑塊。

const swiper = new Swiper('.swiper', {
  grid: {
    rows: 2,
  },
});
hashNavigation任何

啟用幻燈片的雜湊 URL 導航。包含雜湊導航參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  hashNavigation: {
    replaceState: true,
  },
});
heightnull | 數字null

Swiper 的高度(以像素為單位)。參數允許強制設定 Swiper 的高度。僅當您在 Swiper 隱藏時以及在 SSR 和測試環境中初始化 Swiper 時才有用,以便正確初始化 Swiper。

設定此參數會使 Swiper 沒有回應性。

history任何

啟用歷史記錄推送狀態,其中每個幻燈片都有其自己的 URL。在此參數中,您必須指定主要幻燈片 URL(例如 "slides"),並使用 data-history 屬性指定每個幻燈片 URL。

包含歷史記錄導航參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  history: {
    replaceState: true,
  },
});
<!-- will produce "slides/slide1" url in browser history -->
<div class="swiper-slide" data-history="slide1"></div>
init布林值true

是否在建立執行個體時自動初始化 Swiper。如果停用,則需要透過呼叫 swiper.init() 手動初始化。

initialSlide數字0

初始幻燈片的索引編號。

injectStyles字串[]

將文字樣式注入到陰影 DOM。僅適用於 Swiper 元素。

injectStylesUrls字串[]

將樣式 <link> 注入到陰影 DOM。僅適用於 Swiper 元素。

keyboard任何

啟用使用鍵盤瀏覽幻燈片。包含鍵盤參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  keyboard: {
    enabled: true,
    onlyInViewport: false,
  },
});
lazyPreloadPrevNext數字0

要預先載入的下一個和上一個幻燈片的數量。僅適用於使用延遲載入時。

lazyPreloaderClass字串'swiper-lazy-preloader'

延遲預先載入器的 CSS 類別名稱。

longSwipes布林值true

如果要停用長滑動,請設定為 false

longSwipesMs數字300

在長滑動期間觸發滑動到下一個/上一個幻燈片的最小持續時間(以毫秒為單位)。

longSwipesRatio數字0.5

在長滑動期間觸發滑動到下一個/上一個幻燈片的比例。

loop布林值false

設定為 true 以啟用連續循環模式。

由於循環模式的工作方式(它會重新排列幻燈片),幻燈片的總數必須是

  • 大於或等於 slidesPerView + slidesPerGroup
  • 偶數為 slidesPerGroup(或使用 loopAddBlankSlides 參數)。
  • 偶數為 grid.rows(或使用 loopAddBlankSlides 參數)。
loopAddBlankSlides布林值true

如果您使用網格或 slidesPerGroup,並且幻燈片的總數不是 slidesPerGroupgrid.rows 的偶數,則會自動新增空白幻燈片。

loopAdditionalSlides數字0

允許增加循環幻燈片的數量。

loopPreventsSliding布林值true

如果啟用,則在滑塊在循環模式中動畫時,slideNext/Prev 將不會執行任何動作。

maxBackfaceHiddenSlides數字10

如果幻燈片的總數小於此處指定的值,則 Swiper 將在幻燈片元素上啟用 backface-visibility: hidden,以減少 Safari 中的視覺「閃爍」。

不建議在大量幻燈片上啟用它,因為它會降低效能。

modulesany[]

包含 Swiper 模組的陣列。

import Swiper from 'swiper';
import { Navigation, Pagination } from 'swiper/modules';

const swiper = new Swiper('.swiper', {
   modules: [ Navigation, Pagination ],
 });
mousewheel任何

啟用使用滑鼠滾輪瀏覽幻燈片。包含滑鼠滾輪參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  mousewheel: {
    invert: true,
  },
});
navigation任何

包含導航參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
});
nested布林值false

在 Swiper 上設定為 true,以便正確攔截觸控事件。僅在與父 Swiper 使用相同方向的 Swiper 上使用。

noSwiping布林值true

啟用/停用在與 noSwipingClass 中指定的類別相符的元素上的滑動。

noSwipingClass字串'swiper-no-swiping'

指定 noSwiping 的元素 CSS 類別。

noSwipingSelector字串

可以用來代替 noSwipingClass 來指定停用滑動的元素。例如,'input' 將停用所有輸入上的滑動。

normalizeSlideIndex布林值true

正規化幻燈片索引。

observeParents布林值false

如果您還需要監看 Swiper 父元素的 Mutation,請設定為 true

observeSlideChildren布林值false

如果您還需要監看 Swiper 幻燈片子元素的 Mutation,請設定為 true

observer布林值false

設定為 true 以在 Swiper 及其元素上啟用 Mutation Observer。在這種情況下,如果您變更其樣式(例如隱藏/顯示)或修改其子元素(例如新增/移除幻燈片),Swiper 會在每次變更時更新(重新初始化)。

on物件

註冊事件處理常式。

onAny函式(handler)

新增一個事件接聽程式,該接聽程式將在所有事件上觸發。

const swiper = new Swiper('.swiper', {
   onAny(eventName, ...args) {
     console.log('Event: ', eventName);
     console.log('Event data: ', args);
   }
 });
oneWayMovement布林值false

啟用後,無論滑動方向如何,都只會向前滑動幻燈片(單向)。

pagination任何

包含分頁參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  pagination: {
    el: '.swiper-pagination',
    type: 'bullets',
  },
});
parallax任何

包含視差參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  parallax: true,
});
passiveListeners布林值true

在可能的情況下,預設會使用被動事件接聽程式來提高行動裝置上的捲動效能。但是,如果您需要使用 e.preventDefault 並且與其發生衝突,則應停用此參數。

preventClicks布林值true

設定為 true 以防止在滑動期間意外點擊連結。

preventClicksPropagation布林值true

設定為 true 以在滑動期間停止點擊事件在連結上傳播。

preventInteractionOnTransition布林值false

啟用後,在轉換期間不允許透過滑動或導航/分頁按鈕來變更幻燈片。

resistance布林值true

如果要停用阻力邊界,請設定為 false

resistanceRatio數字0.85

此選項可讓您控制阻力比率。

resizeObserver布林值true

啟用後,它將在 swiper 容器上使用 ResizeObserver(如果瀏覽器支援),以偵測容器大小調整(而不是監看視窗大小調整)。

rewind布林值false

設定為 true 以啟用「倒帶」模式。啟用後,當在最後一張幻燈片上按一下「下一個」導航按鈕(或呼叫 .slideNext())時,會滑回第一張幻燈片。當在第一張幻燈片上按一下「上一個」導航按鈕(或呼叫 .slidePrev())時,會滑到最後一張幻燈片。

不應與 loop 模式一起使用。

roundLengths布林值false

設定為 true 以將幻燈片寬度和高度的值四捨五入,以防止在一般解析度的螢幕上出現模糊的文字(如果您有這種情況)。

runCallbacksOnInit布林值true

在 swiper 初始化時觸發 Transition/SlideChange/Start/End 事件。如果您的 initialSlide 不是 0,或者您使用循環模式,則會在初始化時觸發此類事件。

scrollbar任何

包含捲軸參數的物件,或布林值 true 以啟用預設設定。

const swiper = new Swiper('.swiper', {
  scrollbar: {
    el: '.swiper-scrollbar',
    draggable: true,
  },
});
setWrapperSize布林值false

啟用此選項後,外掛程式將在 swiper 包裝器上設定與所有幻燈片總大小相等的寬度/高度。主要應作為不支援 flexbox 版面配置的瀏覽器的相容性回退選項。

shortSwipes布林值true

如果要停用短滑動,請設定為 false

simulateTouch布林值true

如果為 true,則 Swiper 會接受像觸控事件一樣的滑鼠事件(按一下並拖曳以變更幻燈片)。

slideActiveClass字串'swiper-slide-active'

目前活動幻燈片的 CSS 類別名稱。

變更類別後,您還需要變更 Swiper 的 CSS 以反映變更的類別。

在 Swiper React/Vue 元件中不支援。

slideBlankClass字串'swiper-slide-blank'

由循環模式新增的空白幻燈片的 CSS 類別名稱(當 loopAddBlankSlides 啟用時)。

在 Swiper React/Vue 中不支援。

slideClass字串'swiper-slide'

幻燈片的 CSS 類別名稱。

變更類別後,您還需要變更 Swiper 的 CSS 以反映變更的類別。

在 Swiper React/Vue 元件中不支援。

slideFullyVisibleClass字串'swiper-slide-fully-visible'

完全可見的滑塊(當整個滑塊都在視窗中時)的 CSS 類別名稱

在 Swiper React/Vue 中不支援。

slideNextClass字串'swiper-slide-next'

目前活動滑塊之後的滑塊的 CSS 類別名稱

變更類別後,您還需要變更 Swiper 的 CSS 以反映變更的類別。

在 Swiper React/Vue 中不支援。

slidePrevClass字串'swiper-slide-prev'

目前活動滑塊之前的滑塊的 CSS 類別名稱

變更類別後,您還需要變更 Swiper 的 CSS 以反映變更的類別。

在 Swiper React/Vue 中不支援。

slideToClickedSlide布林值false

設為 true 時,點擊任何滑塊都會產生轉換至該滑塊的效果

slideVisibleClass字串'swiper-slide-visible'

目前/部分可見的滑塊的 CSS 類別名稱

變更類別後,您還需要變更 Swiper 的 CSS 以反映變更的類別。

在 Swiper React/Vue 中不支援。

slidesOffsetAfter數字0

在容器末端(所有滑塊之後)加入額外的滑塊偏移量(以像素為單位)

slidesOffsetBefore數字0

在容器開頭(所有滑塊之前)加入額外的滑塊偏移量(以像素為單位)

slidesPerGroup數字1

設定滑塊數量以定義和啟用群組滑動。與 slidesPerView > 1 一起使用很有用

slidesPerGroupAuto布林值false

此參數僅適用於 slidesPerView: 'auto'slidesPerGroup: 1。啟用後,它會在 .slideNext().slidePrev() 方法呼叫、導覽「按鈕」點擊和自動播放時,跳過所有在視圖中的滑塊。

slidesPerGroupSkip數字0

此參數以以下方式運作:如果 slidesPerGroupSkip 等於 0(預設值),則不會將任何滑塊排除在分組之外,且產生的行為與沒有此變更時相同。

如果 slidesPerGroupSkip 大於或等於 1,則前 X 個滑塊會被視為單獨的群組,而後續所有滑塊則會按 slidesPerGroup 值分組。

slidesPerView數字 | 'auto'1

每個視圖的滑塊數量(在滑塊容器上同時可見的滑塊)。

slidesPerView: 'auto' 目前與多行模式(當 grid.rows > 1 時)不相容

spaceBetween字串 | 數字0

滑塊之間的距離(以像素為單位)。

如果您對放入 Swiper 的元素使用「margin」css 屬性,並將「spaceBetween」傳入其中,導覽可能無法正常運作。

speed數字300

滑塊之間轉換的持續時間(以毫秒為單位)

swipeHandler任何null

具有分頁的容器的 CSS 選擇器或 HTML 元素字串,該容器將作為滑動的唯一可用處理器

swiperElementNodeName字串'SWIPER-CONTAINER'

滑塊元素節點的名稱;用於偵測 Web 元件渲染

threshold數字5

閾值(以像素為單位)。如果「觸摸距離」低於此值,則滑塊不會移動

thumbs任何

包含縮圖元件參數的物件

const swiper = new Swiper('.swiper', {
  ...
  thumbs: {
    swiper: thumbsSwiper
  }
});
touchAngle數字45

觸發觸摸移動的允許角度(以度為單位)

touchEventsTarget'container' | 'wrapper''wrapper'

要監聽觸摸事件的目標元素。可以是 'container'(監聽滑塊上的觸摸事件)或 'wrapper'(監聽滑塊包裝器上的觸摸事件)

touchMoveStopPropagation布林值false

如果啟用,則會停止「touchmove」的傳播

touchRatio數字1

觸摸比例

touchReleaseOnEdges布林值false

啟用後,在滑塊邊緣位置(開始、結束)釋放觸摸事件,以允許進一步的頁面滾動。此功能僅適用於「觸摸」事件(而非指標事件),因此它將在 iOS/Android 裝置上運作,而不會在具有指標事件的 Windows 裝置上運作。此外,threshold 參數必須設定為 0

touchStartForcePreventDefault布林值false

強制始終阻止 touchstart (pointerdown) 事件的預設行為

touchStartPreventDefault布林值true

如果停用,則不會阻止 pointerdown 事件

uniqueNavElements布林值true

如果啟用(預設情況下),並且導覽元素的參數以字串形式傳遞(如 ".pagination"),則 Swiper 將首先在子元素中尋找此類元素。適用於分頁、上一個/下一個按鈕和滾動條元素

updateOnWindowResize布林值true

Swiper 將在視窗調整大小(方向變更)時重新計算滑塊位置

urlnull | 字串null

在伺服器端呈現並啟用歷程記錄時,需要用於活動滑塊偵測

userAgentnull | 字串null

userAgent 字串。在伺服器端呈現時,需要用於瀏覽器/裝置偵測

virtual任何

啟用虛擬滑塊功能。包含虛擬滑塊參數的物件或布林值 true 以使用預設設定啟用。

const swiper = new Swiper('.swiper', {
  virtual: {
    slides: ['Slide 1', 'Slide 2', 'Slide 3', 'Slide 4', 'Slide 5'],
  },
});
virtualTranslate布林值false

啟用此選項,滑塊將照常運作,但它不會移動,不會在包裝器上設定實際的轉換值。當您可能需要建立自訂滑塊轉換時很有用

watchOverflow布林值true

啟用後,如果滑動的滑塊不足,Swiper 將被停用並隱藏導覽按鈕。

watchSlidesProgress布林值false

啟用此功能可計算每個滑塊的進度和可見性(視窗中的滑塊將具有額外的可見類別)

widthnull | 數字null

滑塊寬度(以像素為單位)。此參數允許強制設定滑塊寬度。僅當您在隱藏時初始化滑塊,以及在 SSR 和測試環境中進行正確的滑塊初始化時才有用

設定此參數會使 Swiper 沒有回應性。

wrapperClass字串'swiper-wrapper'

滑塊包裝器的 CSS 類別名稱

變更類別後,您還需要變更 Swiper 的 CSS 以反映變更的類別。

在 Swiper React/Vue 中不支援。

zoom任何

啟用縮放功能。包含縮放參數的物件或布林值 true 以使用預設設定啟用

const swiper = new Swiper('.swiper', {
  zoom: {
    maxRatio: 5,
  },
});

方法 & 屬性

在初始化滑塊後,我們在變數中(如上面範例中的 swiper 變數)擁有其初始化的執行個體,其中包含有用的方法和屬性

屬性
swiper.a11y任何
swiper.activeIndex數字

目前活動滑塊的索引編號

請注意,在循環模式下,活動索引值將始終偏移循環滑塊的數量

swiper.allowSlideNext布林值

透過將 false / true 賦予此屬性,停用/啟用滑動到下一個滑塊的功能

swiper.allowSlidePrev布林值

透過將 false / true 賦予此屬性,停用/啟用滑動到上一個滑塊的功能

swiper.allowTouchMove布林值

透過將 false / true 賦予此屬性,停用/啟用透過滑鼠抓取或用手指觸摸(在觸控螢幕上)移動滑塊的功能

swiper.animating布林值

如果滑塊正在轉換中,則為 true

swiper.autoplay任何
swiper.cardsEffect任何
swiper.clickedIndex數字

上次點擊的滑塊的索引編號

swiper.clickedSlideHTMLElement

連結到上次點擊的滑塊 (HTMLElement)

swiper.controller任何
swiper.coverflowEffect任何
swiper.creativeEffect任何
swiper.cubeEffect任何
swiper.defaults任何

Swiper 預設選項

swiper.elHTMLElement

滑塊容器 HTML 元素

swiper.extendedDefaults任何

包含全域 Swiper 擴充選項的物件

swiper.fadeEffect任何
swiper.flipEffect任何
swiper.freeMode任何
swiper.hashNavigation任何
swiper.height數字

容器的高度

swiper.history任何
swiper.isBeginning布林值

如果滑塊位於最「左側」/「頂部」位置,則為 true

swiper.isEnd布林值

如果滑塊位於最「右側」/「底部」位置,則為 true

swiper.isLocked布林值

如果滑塊被「鎖定」(透過 watchOverflow),並且滑塊無法滑動,則為 true,例如當滑塊數量少於每個視圖的滑塊數量時

swiper.keyboard任何
swiper.mousewheel任何
swiper.navigation任何
swiper.originalParams任何

包含原始初始化參數的物件

swiper.pagination任何
swiper.parallax任何
swiper.params任何

包含傳遞的初始化參數的物件

swiper.previousIndex數字

先前活動滑塊的索引編號

swiper.progress數字

包裝器轉換的目前進度(從 0 到 1)

swiper.realIndex數字

考慮到循環模式中重新排列的滑塊,目前活動滑塊的索引編號

swiper.scrollbar任何
swiper.slidesHTMLElement[]

滑塊 HTML 元素的陣列。若要取得特定的滑塊 HTMLElement,請使用 swiper.slides[1]

swiper.slidesElHTMLElement

包裝器 HTML 元素

swiper.slidesGridnumber[]

滑塊網格

swiper.slidesSizesGridnumber[]

滑塊寬度的陣列

swiper.snapGridnumber[]

滑塊貼齊網格

swiper.snapIndex數字

snapGrid 中目前貼齊的索引編號

swiper.swipeDirection'prev' | 'next'

滑動方向

swiper.thumbs任何
swiper.touches物件

包含以下觸摸事件屬性的物件

  • swiper.touches.startX
  • swiper.touches.startY
  • swiper.touches.currentX
  • swiper.touches.currentY
  • swiper.touches.diff
swiper.translate數字

包裝器轉換的目前值

swiper.virtual任何
swiper.width數字

容器的寬度

swiper.wrapperElHTMLElement

包裝器 HTML 元素

swiper.zoom任何
方法
swiper.attachEvents()

再次附加所有事件監聽器

swiper.changeDirection(direction, needUpdate)

將滑塊方向從水平變更為垂直,反之亦然。

  • direction - 'horizontal' | 'vertical' - 新方向。如果未指定,則會自動變更為相反方向
  • needUpdate - boolean - 將呼叫 swiper.update()。預設值為 true
swiper.changeLanguageDirection(direction)

變更滑塊語言

  • direction - 'rtl' | 'ltr' - 新方向。應為 `rtl` 或 `ltr`
swiper.destroy(deleteInstance, cleanStyles)

銷毀滑塊執行個體並分離所有事件監聽器

  • deleteInstance - boolean - 將其設定為 false(預設值為 true)以不刪除 Swiper 執行個體
  • cleanStyles - boolean - 將其設定為 true(預設值為 true),所有自訂樣式將從滑塊、包裝器和容器中移除。如果您需要銷毀 Swiper 並使用新的選項或不同的方向再次初始化,這很有用
swiper.detachEvents()

分離所有事件監聽器

swiper.disable()

停用 Swiper(如果已啟用)。停用 Swiper 後,它將隱藏所有導覽元素,且不會回應任何事件和互動

swiper.emit(event, args)

在執行個體上觸發事件

swiper.enable()

啟用 Swiper(如果已停用)

swiper.extendDefaults(options)

擴充全域 Swiper 預設值

swiper.getTranslate()

取得滑塊包裝器 css3 轉換轉換的目前值

swiper.init(el)

初始化滑塊

swiper.maxTranslate()

取得目前的最大轉換值

swiper.minTranslate()

取得目前的最小轉換值

swiper.off(event, handler)

移除事件處理常式

swiper.offAny(handler)

移除在所有事件上觸發的事件監聽器

swiper.on(event, handler)

新增事件處理常式

swiper.onAny(handler)

新增一個事件接聽程式,該接聽程式將在所有事件上觸發。

swiper.once(event, handler)

新增事件處理常式,該處理常式會在觸發後移除

swiper.setGrabCursor()

設定抓取游標

swiper.setProgress(progress, speed)

設定 Swiper 轉換進度(從 0 到 1)。其中 0 是第一個滑塊上的初始位置(偏移),而 1 是最後一個滑塊上的最大位置(偏移)

  • progress - number - Swiper 轉換進度(從 0 到 1)。
  • speed - number - 過渡動畫持續時間 (毫秒)。
swiper.setTranslate(translate)

設定 swiper 包裹層的自訂 CSS3 transform 的 translate 值

swiper.slideNext(speed, runCallbacks)

執行過渡動畫到下一張投影片。

  • speed - number - 過渡動畫持續時間 (毫秒)。
  • runCallbacks - boolean - 設定為 false (預設為 true) 時,過渡動畫將不會產生過渡事件。
swiper.slidePrev(speed, runCallbacks)

執行過渡動畫到上一張投影片。

  • speed - number - 過渡動畫持續時間 (毫秒)。
  • runCallbacks - boolean - 設定為 false (預設為 true) 時,過渡動畫將不會產生過渡事件。
swiper.slideReset(speed, runCallbacks)

將 swiper 位置重設為目前活動的投影片,持續時間等於 'speed' 參數。

  • speed - number - 過渡動畫持續時間 (毫秒)。
  • runCallbacks - boolean - 設定為 false (預設為 true) 時,過渡動畫將不會產生過渡事件。
swiper.slideTo(index, speed, runCallbacks)

執行過渡動畫到索引編號等於 'index' 參數的投影片,持續時間等於 'speed' 參數。

  • index - number - 投影片的索引編號。
  • speed - number - 過渡動畫持續時間 (毫秒)。
  • runCallbacks - boolean - 設定為 false (預設為 true) 時,過渡動畫將不會產生過渡事件。
swiper.slideToClosest(speed, runCallbacks)

將 swiper 位置重設為最接近的投影片/貼齊點,持續時間等於 'speed' 參數。

  • speed - number - 過渡動畫持續時間 (毫秒)。
  • runCallbacks - boolean - 設定為 false (預設為 true) 時,過渡動畫將不會產生過渡事件。
swiper.slideToLoop(index, speed, runCallbacks)

與 .slideTo 執行相同操作,但用於啟用循環模式時。因此,此方法將滑動到 realIndex 與傳遞的 index 相符的投影片。

  • index - number - 投影片的索引編號。
  • speed - number - 過渡動畫持續時間 (毫秒)。
  • runCallbacks - boolean - 設定為 false (預設為 true) 時,過渡動畫將不會產生過渡事件。
swiper.slidesPerViewDynamic()

取得動態計算的每視窗投影片數量,僅在 slidesPerView 設定為 auto 時有用

swiper.translateTo(translate, speed, runCallbacks, translateBounds)

為 swiper 包裹層的自訂 CSS3 transform 的 translate 值製作動畫

  • translate - number - Translate 值 (單位為 px)
  • speed - number - 過渡動畫持續時間 (毫秒)
  • runCallbacks - boolean - 設定為 false (預設為 true) 時,過渡動畫將不會產生過渡事件
  • translateBounds - boolean - 設定為 false (預設為 true) 時,過渡動畫值可以超出最小和最大 translate 值
swiper.unsetGrabCursor()

取消抓取游標

swiper.update()

當您手動新增/移除投影片,或隱藏/顯示投影片,或對 Swiper 進行任何自訂 DOM 修改後,應呼叫此方法。此方法也包含以下您可以單獨使用的方法的子呼叫

swiper.updateAutoHeight(speed)

強制 swiper 更新其高度 (當啟用 autoHeight 時),持續時間等於 'speed' 參數

  • speed - number - 過渡動畫持續時間 (毫秒)。
swiper.updateProgress()

重新計算 swiper 進度

swiper.updateSize()

重新計算 swiper 容器大小

swiper.updateSlides()

重新計算投影片數量及其偏移量。當您使用 JavaScript 新增/移除投影片後有用

swiper.updateSlidesClasses()

更新投影片和圓點上的 active/prev/next 類別

swiper.use(modules)

在執行期間於 Swiper 上安裝模組。

事件

Swiper 帶有一些您可以監聽的實用事件。事件可以透過兩種方式指派

  1. 在 swiper 初始化時使用 on 參數

    const swiper = new Swiper('.swiper', {
      // ...
      on: {
        init: function () {
          console.log('swiper initialized');
        },
      },
    });
    
  2. 在 swiper 初始化後使用 on 方法。

    const swiper = new Swiper('.swiper', {
      // ...
    });
    swiper.on('slideChange', function () {
      console.log('slide changed');
    });
    
請注意,事件處理常式中的 this 關鍵字始終指向 Swiper 實例
名稱引數說明
activeIndexChange(swiper)

當活動索引變更時,將會觸發事件

afterInit(swiper)

初始化完成後,將會立即觸發事件

beforeDestroy(swiper)

在 Swiper 銷毀之前,將會立即觸發事件

beforeInit(swiper)

在初始化之前,將會立即觸發事件

beforeLoopFix(swiper)

在「循環修正」之前,將會立即觸發事件

beforeResize(swiper)

在調整大小處理常式之前,將會觸發事件

beforeSlideChangeStart(swiper)

在投影片變更過渡開始之前,將會觸發事件

beforeTransitionStart(swiper, speed, internal)

在過渡動畫開始之前,將會觸發事件

breakpoint(swiper, breakpointParams)

當斷點變更時,將會觸發事件

changeDirection(swiper)

當方向變更時,將會觸發事件

click(swiper, event)

當使用者點擊/輕觸 Swiper 時,將會觸發事件。接收 pointerup 事件作為引數。

destroy(swiper)

當 swiper 銷毀時,將會觸發事件

doubleClick(swiper, event)

當使用者雙擊/輕觸 Swiper 時,將會觸發事件

doubleTap(swiper, event)

當使用者雙擊/輕觸 Swiper 的容器時,將會觸發事件。接收 pointerup 事件作為引數

fromEdge(swiper)

當 Swiper 從開始或結束位置移動時,將會觸發事件

init(swiper)

在 Swiper 初始化完成後,立即觸發。

請注意,使用 swiper.on('init') 語法時,只有在您設定 init: false 參數時才會運作。

const swiper = new Swiper('.swiper', {
  init: false,
  // other parameters
});
swiper.on('init', function() {
 // do something
});
// init Swiper
swiper.init();
// Otherwise use it as the parameter:
const swiper = new Swiper('.swiper', {
  // other parameters
  on: {
    init: function () {
      // do something
    },
  }
});
lock(swiper)

當 swiper 被鎖定時 (當啟用 watchOverflow 時),將會觸發事件

loopFix(swiper)

在「循環修正」之後,將會觸發事件

momentumBounce(swiper)

當動量反彈時,將會觸發事件

observerUpdate(swiper)

如果啟用觀察器且偵測到 DOM 變更,將會觸發事件

orientationchange(swiper)

當方向變更時 (例如,橫向 -> 直向),將會觸發事件

progress(swiper, progress)

當 Swiper 進度變更時,將會觸發事件,並接收一個介於 0 到 1 之間的進度作為引數

reachBeginning(swiper)

當 Swiper 到達其開頭 (初始位置) 時,將會觸發事件

reachEnd(swiper)

當 Swiper 到達最後一張投影片時,將會觸發事件

realIndexChange(swiper)

當實際索引變更時,將會觸發事件

resize(swiper)

在視窗調整大小且 swiper 調整大小之前,將會觸發事件

setTransition(swiper, transition)

每次當 swiper 開始動畫時,將會觸發事件。接收目前過渡動畫持續時間 (毫秒) 作為引數

setTranslate(swiper, translate)

當 swiper 的包裹層變更其位置時,將會觸發事件。接收目前的 translate 值作為引數

slideChange(swiper)

當目前活動的投影片變更時,將會觸發事件

slideChangeTransitionEnd(swiper)

在其他投影片 (上一張或下一張) 的動畫之後,將會觸發事件。

slideChangeTransitionStart(swiper)

在其他投影片 (上一張或下一張) 的動畫開始時,將會觸發事件。

slideNextTransitionEnd(swiper)

與 "slideChangeTransitionEnd" 相同,但僅限於「向前」方向

slideNextTransitionStart(swiper)

與 "slideChangeTransitionStart" 相同,但僅限於「向前」方向

slidePrevTransitionEnd(swiper)

與 "slideChangeTransitionEnd" 相同,但僅限於「向後」方向

slidePrevTransitionStart(swiper)

與 "slideChangeTransitionStart" 相同,但僅限於「向後」方向

slideResetTransitionEnd(swiper)

在將投影片重設為目前投影片的動畫結束時,將會觸發事件

slideResetTransitionStart(swiper)

在將投影片重設為目前投影片的動畫開始時,將會觸發事件

sliderFirstMove(swiper, event)

當第一次觸摸/拖曳移動時,將會觸發事件

sliderMove(swiper, event)

當使用者觸摸並在 Swiper 上移動手指時,將會觸發事件。接收 pointermove 事件作為引數。

slidesGridLengthChange(swiper)

當投影片網格變更時,將會觸發事件

slidesLengthChange(swiper)

當投影片數量變更時,將會觸發事件

slidesUpdated(swiper)

在計算並更新投影片及其大小之後,將會觸發事件

snapGridLengthChange(swiper)

當貼齊網格變更時,將會觸發事件

snapIndexChange(swiper)

當貼齊索引變更時,將會觸發事件

tap(swiper, event)

當使用者點擊/輕觸 Swiper 時,將會觸發事件。接收 pointerup 事件作為引數。

toEdge(swiper)

當 Swiper 移動到開始或結束位置時,將會觸發事件

touchEnd(swiper, event)

當使用者釋放 Swiper 時,將會觸發事件。接收 pointerup 事件作為引數。

touchMove(swiper, event)

當使用者觸摸並在 Swiper 上移動手指時,將會觸發事件。接收 pointermove 事件作為引數。

touchMoveOpposite(swiper, event)

當使用者觸摸並在 Swiper 上移動手指,方向與方向參數相反時,將會觸發事件。接收 pointermove 事件作為引數。

touchStart(swiper, event)

當使用者觸摸 Swiper 時,將會觸發事件。接收 pointerdown 事件作為引數。

transitionEnd(swiper)

在過渡動畫結束後,將會觸發事件。

transitionStart(swiper)

在過渡動畫開始時,將會觸發事件。

unlock(swiper)

當 swiper 被解除鎖定時 (當啟用 watchOverflow 時),將會觸發事件

update(swiper)

在呼叫 swiper.update() 後,將會觸發事件

模組

名稱類型預設值說明
disabledClass字串'swiper-button-disabled'

當導覽按鈕停用時,新增至導覽按鈕的 CSS 類別名稱

enabled布林值

與斷點搭配使用的布林屬性,可在特定斷點上啟用/停用導覽

hiddenClass字串'swiper-button-hidden'

當導覽按鈕隱藏時,新增至導覽按鈕的 CSS 類別名稱

hideOnClick布林值false

在點擊滑動器的容器後,切換導覽按鈕的顯示狀態

lockClass字串'swiper-button-lock'

當導覽按鈕停用時,新增至導覽按鈕的 CSS 類別名稱

navigationDisabledClass字串'swiper-navigation-disabled'

當導覽因斷點停用時,新增至 swiper 容器的 CSS 類別名稱

nextEl任何null

CSS 選取器字串或 HTML 元素,在點擊後將像「下一張」按鈕一樣運作

prevEl任何null

CSS 選取器字串或 HTML 元素,在點擊後將像「上一張」按鈕一樣運作

屬性
swiper.nextElHTMLElement

「下一張」導覽按鈕的 HTMLElement

swiper.prevElHTMLElement

「上一張」導覽按鈕的 HTMLElement

方法
swiper.destroy()

銷毀導覽

swiper.init()

初始化導覽

swiper.update()

更新導覽按鈕狀態 (已啟用/已停用)

名稱引數說明
navigationHide(swiper)

當導覽隱藏時,將會觸發事件

navigationNext(swiper)

當點擊導覽「下一張」按鈕時,將會觸發事件

navigationPrev(swiper)

當點擊導覽「上一張」按鈕時,將會觸發事件

navigationShow(swiper)

當導覽顯示時,將會觸發事件

 {
  --swiper-navigation-size: 44px;
  --swiper-navigation-top-offset: 50%;
  --swiper-navigation-sides-offset: 10px;
  --swiper-navigation-color: var(--swiper-theme-color);
}

分頁

分頁參數

名稱類型預設值說明
bulletActiveClass字串'swiper-pagination-bullet-active'

目前活動分頁圓點的 CSS 類別名稱

bulletClass字串'swiper-pagination-bullet'

單個分頁圓點的 CSS 類別名稱

bulletElement字串'span'

定義將用來表示單個分頁圓點的 HTML 標籤。僅適用於 'bullets' 分頁類型。

clickable布林值false

如果為 true,則點擊分頁按鈕會使滑動切換到相應的幻燈片。僅適用於項目符號分頁類型

clickableClass字串'swiper-pagination-clickable'

當分頁可點擊時,設定到分頁的 CSS 類別名稱

currentClass字串'swiper-pagination-current'

在「分數」分頁中,目前活動索引的元素的 CSS 類別名稱

dynamicBullets布林值false

如果您使用帶有大量幻燈片的項目符號分頁,建議啟用此功能。這樣它將僅同時保持少數項目符號可見。

dynamicMainBullets數字1

啟用 dynamicBullets 時可見的主項目符號數量。

el任何null

帶有 CSS 選擇器或包含分頁的 HTML 元素的字串

enabled布林值

布林值屬性,用於與斷點一起使用,以在特定斷點上啟用/停用分頁

formatFractionCurrentfunction(number)

格式化分數分頁的目前數字。函式接收目前數字,您需要返回格式化的值

formatFractionTotalfunction(number)

格式化分數分頁的總數字。函式接收總數,您需要返回格式化的值

hiddenClass字串'swiper-pagination-hidden'

分頁變為非活動狀態時的 CSS 類別名稱

hideOnClick布林值true

在點擊滑動容器後切換(隱藏/顯示)分頁容器的可見性

horizontalClass字串'swiper-pagination-horizontal'

在水平 Swiper 中設定到分頁的 CSS 類別名稱

lockClass字串'swiper-pagination-lock'

當分頁停用時,設定到分頁的 CSS 類別名稱

modifierClass字串'swiper-pagination-'

將根據參數新增到分頁的修飾符 CSS 類別名稱的開頭

paginationDisabledClass字串'swiper-pagination-disabled'

當分頁因斷點而停用時,新增到 swiper 容器和分頁元素的 CSS 類別名稱

progressbarFillClass字串'swiper-pagination-progressbar-fill'

分頁進度條填充元素的 CSS 類別名稱

progressbarOpposite布林值false

使分頁進度條與 Swiper 的 direction 參數相反,表示水平滑動方向的垂直進度條和垂直滑動方向的水平進度條

progressbarOppositeClass字串'swiper-pagination-progressbar-opposite'

分頁進度條相反的 CSS 類別名稱

renderBulletfunction(index, className)

此參數允許完全自訂分頁項目符號,您需要在這裡傳遞一個函式,該函式接受分頁項目符號的 index 編號和所需的元素類別名稱 (className)。僅適用於 'bullets' 分頁類型

const swiper = new Swiper('.swiper', {
  //...
  renderBullet: function (index, className) {
    return '<span class="' + className + '">' + (index + 1) + '</span>';
  }
});
renderCustomfunction(swiper, current, total)

此參數是 'custom' 分頁類型所必需的,您必須在此指定其應如何呈現。

const swiper = new Swiper('.swiper', {
  //...
  renderCustom: function (swiper, current, total) {
    return current + ' of ' + total;
  }
});
renderFractionfunction(currentClass, totalClass)

此參數允許自訂「分數」分頁 html。僅適用於 'fraction' 分頁類型

const swiper = new Swiper('.swiper', {
  //...
  renderFraction: function (currentClass, totalClass) {
      return '<span class="' + currentClass + '"></span>' +
              ' of ' +
              '<span class="' + totalClass + '"></span>';
  }
});
renderProgressbarfunction(progressbarFillClass)

此參數允許自訂「進度」分頁。僅適用於 'progress' 分頁類型

const swiper = new Swiper('.swiper', {
  //...
  renderProgressbar: function (progressbarFillClass) {
      return '<span class="' + progressbarFillClass + '"></span>';
  }
});
totalClass字串'swiper-pagination-total'

在「分數」分頁中,包含「快照」總數的元素的 CSS 類別名稱

type'progressbar' | 'bullets' | 'fraction' | 'custom''bullets'

帶有分頁類型的字串。可以是 'bullets''fraction''progressbar''custom'

verticalClass字串'swiper-pagination-vertical'

在垂直 Swiper 中設定到分頁的 CSS 類別名稱

分頁方法

屬性
swiper.bulletsHTMLElement[]

分頁項目符號 HTML 元素的陣列。要取得特定的幻燈片 HTMLElement,請使用 swiper.pagination.bullets[1]

swiper.elHTMLElement

分頁容器元素的 HTMLElement

方法
swiper.destroy()

銷毀分頁

swiper.init()

初始化分頁

swiper.render()

呈現分頁版面配置

swiper.update()

更新分頁狀態(已啟用/已停用/活動)

分頁事件

名稱引數說明
paginationHide(swiper)

分頁隱藏時將觸發事件

paginationRender(swiper, paginationEl)

分頁呈現後將觸發事件

paginationShow(swiper)

分頁顯示時將觸發事件

paginationUpdate(swiper, paginationEl)

分頁更新時將觸發事件

分頁 CSS 自訂屬性

 {
  --swiper-pagination-color: var(--swiper-theme-color);
  --swiper-pagination-left: auto;
  --swiper-pagination-right: 8px;
  --swiper-pagination-bottom: 8px;
  --swiper-pagination-top: auto;
  --swiper-pagination-fraction-color: inherit;
  --swiper-pagination-progressbar-bg-color: rgba(0, 0, 0, 0.25);
  --swiper-pagination-progressbar-size: 4px;
  --swiper-pagination-bullet-size: 8px;
  --swiper-pagination-bullet-width: 8px;
  --swiper-pagination-bullet-height: 8px;
  --swiper-pagination-bullet-inactive-color: #000;
  --swiper-pagination-bullet-inactive-opacity: 0.2;
  --swiper-pagination-bullet-opacity: 1;
  --swiper-pagination-bullet-horizontal-gap: 4px;
  --swiper-pagination-bullet-vertical-gap: 6px;
}

捲軸

捲軸參數

名稱類型預設值說明
dragClass字串'swiper-scrollbar-drag'

捲軸可拖曳元素的 CSS 類別

dragSize數字 | 'auto''auto'

捲軸可拖曳元素的尺寸,單位為 px

draggable布林值false

設定為 true 以啟用可拖曳捲軸,讓您控制滑塊位置

el任何null

帶有 CSS 選擇器或包含捲軸的 HTML 元素的字串。

enabled布林值

布林值屬性,用於與斷點一起使用,以在特定斷點上啟用/停用捲軸

hide布林值true

在使用者互動後自動隱藏捲軸

horizontalClass字串'swiper-scrollbar-horizontal'

在水平 Swiper 中設定到捲軸的 CSS 類別名稱

lockClass字串'swiper-scrollbar-lock'

停用時,捲軸元素的其他 CSS 類別

scrollbarDisabledClass字串'swiper-scrollbar-disabled'

當捲軸因斷點而停用時,新增到 swiper 容器和捲軸元素的 CSS 類別名稱

snapOnRelease布林值false

設定為 true 以在您釋放捲軸時將滑塊位置對齊到幻燈片

verticalClass字串'swiper-scrollbar-vertical'

在垂直 Swiper 中設定到捲軸的 CSS 類別名稱

捲軸方法

屬性
swiper.dragElHTMLElement

捲軸可拖曳控制項元素的 HTMLElement

swiper.elHTMLElement

捲軸容器元素的 HTMLElement

方法
swiper.destroy()

銷毀捲軸

swiper.init()

初始化捲軸

swiper.setTranslate()

更新捲軸轉換

swiper.updateSize()

更新捲軸軌道和控制項大小

捲軸事件

名稱引數說明
scrollbarDragEnd(swiper, event)

可拖曳捲軸拖曳結束時將觸發事件

scrollbarDragMove(swiper, event)

可拖曳捲軸拖曳移動時將觸發事件

scrollbarDragStart(swiper, event)

可拖曳捲軸拖曳開始時將觸發事件

捲軸 CSS 自訂屬性

 {
  --swiper-scrollbar-border-radius: 10px;
  --swiper-scrollbar-top: auto;
  --swiper-scrollbar-bottom: 4px;
  --swiper-scrollbar-left: auto;
  --swiper-scrollbar-right: 4px;
  --swiper-scrollbar-sides-offset: 1%;
  --swiper-scrollbar-bg-color: rgba(0, 0, 0, 0.1);
  --swiper-scrollbar-drag-bg-color: rgba(0, 0, 0, 0.5);
  --swiper-scrollbar-size: 4px;
}

自動播放

自動播放參數

名稱類型預設值說明
delay數字3000

轉換之間的延遲(以毫秒為單位)。如果未指定此參數,則會停用自動播放

如果您需要為特定的幻燈片指定不同的延遲,您可以在幻燈片上使用data-swiper-autoplay (以毫秒為單位) 屬性來完成。

<!-- hold this slide for 2 seconds -->
<div class="swiper-slide" data-swiper-autoplay="2000">
disableOnInteraction布林值true

設定為 false,自動播放將不會在使用者互動(滑動)後停用,它將在每次互動後重新啟動

pauseOnMouseEnter布林值false

啟用後,當指標 (滑鼠) 進入 Swiper 容器上方時,自動播放將會暫停。

reverseDirection布林值false

啟用反向自動播放

stopOnLastSlide布林值false

啟用此參數,當自動播放到達最後一張幻燈片時將會停止(在循環模式下無效)

waitForTransition布林值true

啟用後,自動播放將等待封裝轉換繼續。在使用虛擬轉換時,如果您的滑塊可能沒有轉換,則可以停用此功能

自動播放方法

屬性
swiper.paused布林值

自動播放是否暫停

swiper.running布林值

是否啟用自動播放並正在執行

swiper.timeLeft數字

如果自動播放暫停,則包含轉換到下一張幻燈片之前的剩餘時間(以毫秒為單位)

方法
swiper.pause()

暫停自動播放

swiper.resume()

繼續自動播放

swiper.start()

開始自動播放

swiper.stop()

停止自動播放

自動播放事件

名稱引數說明
autoplay(swiper)

使用自動播放變更幻燈片時將觸發事件

autoplayPause(swiper)

自動播放暫停時將觸發事件

autoplayResume(swiper)

自動播放繼續時將觸發事件

autoplayStart(swiper)

自動播放開始時將觸發事件

autoplayStop(swiper)

自動播放停止時將觸發事件

autoplayTimeLeft(swiper, timeLeft, percentage)

啟用自動播放時,事件會持續觸發。它包含轉換到下一張幻燈片之前的剩餘時間(以毫秒為單位)以及該時間相對於自動播放延遲的百分比

自由模式

自由模式參數

名稱類型預設值說明
enabled布林值false

是否啟用自由模式

minimumVelocity數字0.02

觸發自由模式動量所需的最低 touchmove 速度

momentum布林值true

如果啟用,則滑動會在您釋放後保持移動一段時間

momentumBounce布林值true

如果您想在自由模式中停用動量彈跳,請設定為 false

momentumBounceRatio數字1

數值越高,產生的動量彈跳效果越大

momentumRatio數字1

數值越高,您釋放滑塊後產生的動量距離越大

momentumVelocityRatio數字1

數值越高,您釋放滑塊後產生的動量速度越大

sticky布林值false

設定為啟用,以在自由模式中啟用對齊到幻燈片位置

網格

網格參數

名稱類型預設值說明
fill'row' | 'column''column'

可以是 'column''row'。定義幻燈片應如何按欄或按列填滿列

如果與循環模式一起使用,請確保幻燈片的數量已在循環模式要求中指定,或啟用 loopAddBlankSlides 參數

rows數字1

幻燈片列數,用於多列版面配置

操作

操作模組為 Swiper 增加了實用的方法來操作滑動內容。它僅適用於 Swiper Core 版本,不應與 Swiper React 或 Vue 一起使用。

操作方法

方法
swiper.addSlide(index, slides)

在指定的索引位置新增幻燈片。slides 可以是 HTMLElement 或 HTML 字串形式的新幻燈片,或包含這些幻燈片的陣列,例如:

addSlide(1, '<div class="swiper-slide">Slide 10"</div>')

addSlide(1, [
 '<div class="swiper-slide">Slide 10"</div>',
 '<div class="swiper-slide">Slide 11"</div>'
]);
swiper.appendSlide(slides)

在末尾新增幻燈片。slides 可以是 HTMLElement 或 HTML 字串形式的新幻燈片,或包含這些幻燈片的陣列,例如:

appendSlide('<div class="swiper-slide">Slide 10"</div>')

appendSlide([
 '<div class="swiper-slide">Slide 10"</div>',
 '<div class="swiper-slide">Slide 11"</div>'
]);
swiper.prependSlide(slides)

在開頭新增幻燈片。slides 可以是 HTMLElement 或 HTML 字串形式的新幻燈片,或包含這些幻燈片的陣列,例如:

prependSlide('<div class="swiper-slide">Slide 0"</div>')

prependSlide([
 '<div class="swiper-slide">Slide 1"</div>',
 '<div class="swiper-slide">Slide 2"</div>'
]);
swiper.removeAllSlides()

移除所有幻燈片

swiper.removeSlide(slideIndex)

移除選定的幻燈片。slideIndex 可以是要移除的幻燈片索引的數字,或包含索引的陣列。

removeSlide(0); // remove first slide
removeSlide([0, 1]); // remove first and second slides
removeAllSlides();    // Remove all slides

視差效果

Swiper 支援用於 swiper/slides 巢狀元素的視差轉場效果。支援兩種視差元素類型

  • swiper 的直接子元素。此類元素的視差效果將取決於滑動總進度。適用於視差背景
  • 幻燈片的子元素。此類元素的視差效果將取決於幻燈片進度

要啟用視差效果,您需要使用傳入的 parallax:true 參數初始化 Swiper,並將以下屬性之一(或混合)新增至必要的元素

  • data-swiper-parallax - 啟用 transform-translate 視差轉場。此屬性可以接受
    • number - 以像素為單位的值(如上例中的標題、副標題),根據進度移動元素。在這種情況下,此元素將根據幻燈片位置(下一個或上一個)移動 ± 此值(以像素為單位)
    • percentage -(如「parallax-bg」)根據進度及其大小移動元素。在這種情況下,此元素將根據幻燈片位置(下一個或上一個)移動 ± 其大小的此百分比(水平方向的寬度和垂直方向的高度)。因此,如果元素的寬度為 400px,並且您指定 data-swiper-parallax="50%",則它將移動 ± 200px
  • data-swiper-parallax-x - 相同,但用於 x 軸方向
  • data-swiper-parallax-y - 相同,但用於 y 軸方向
  • data-swiper-parallax-scale - 視差元素在「非活動」(不在活動幻燈片上)狀態時的縮放比例
  • data-swiper-parallax-opacity - 視差元素在「非活動」(不在活動幻燈片上)狀態時的不透明度
  • data-swiper-parallax-duration - 視差元素的自訂轉場持續時間
<div class="swiper">
  <!-- Parallax background element -->
  <div
    class="parallax-bg"
    style="background-image:url(path/to/image.jpg)"
    data-swiper-parallax="-23%"
  ></div>
  <div class="swiper-wrapper">
    <div class="swiper-slide">
      <!-- Each slide has parallax title -->
      <div class="title" data-swiper-parallax="-100">Slide 1</div>
      <!-- Parallax subtitle -->
      <div class="subtitle" data-swiper-parallax="-200">Subtitle</div>
      <!-- And parallax text with custom transition duration -->
      <div
        class="text"
        data-swiper-parallax="-300"
        data-swiper-parallax-duration="600"
      >
        <p>Lorem ipsum dolor sit amet, ...</p>
      </div>
      <!-- Opacity parallax -->
      <div data-swiper-parallax-opacity="0.5">I will change opacity</div>
      <!-- Scale parallax -->
      <div data-swiper-parallax-scale="0.15">I will change scale</div>
    </div>
    ...
  </div>
</div>

視差參數

名稱類型預設值說明
enabled布林值false

如果要使用滑動條內的「視差」元素,請啟用此功能

延遲載入

自版本 9 起,Swiper 沒有特定的延遲載入 API,因为它依賴於瀏覽器原生的延遲載入功能。要使用延遲載入,我們只需在圖片上設定 loading="lazy" 並新增預載入器元素

<div class="swiper">
  <div class="swiper-wrapper">
    <!-- Lazy image -->
    <div class="swiper-slide">
      <img src="path/to/picture-1.jpg" loading="lazy" />
      <div class="swiper-lazy-preloader"></div>
    </div>

    <!-- Lazy image with srcset -->
    <div class="swiper-slide">
      <img
        src="path/to/logo-small.png"
        srcset="path/to/logo-large.png 2x"
        loading="lazy"
      />
      <div class="swiper-lazy-preloader"></div>
    </div>
  </div>
</div>

如您所見

  • 延遲載入的圖片必須具有 loading="lazy" 屬性
  • 將動畫預載入器旋轉器新增至幻燈片,該旋轉器會在圖片載入後自動移除
<div class="swiper-lazy-preloader"></div>

或是深色佈局的白色旋轉器

<div class="swiper-lazy-preloader swiper-lazy-preloader-white"></div>

淡入淡出效果

請務必將 effect 參數設定為 'fade',此功能才能正常運作。

請注意,應將 crossFade 設定為 true,以避免看到後方或下方的內容。

淡入淡出效果參數

名稱類型預設值說明
crossFade布林值false

啟用幻燈片交叉淡入淡出

立體覆蓋流效果

請務必將 effect 參數設定為 'coverflow',此功能才能正常運作。

立體覆蓋流效果參數

名稱類型預設值說明
depth數字100

深度偏移(以像素為單位)(幻燈片在 Z 軸上平移)

modifier數字1

效果乘數

rotate數字50

幻燈片旋轉角度(以度為單位)

scale數字1

幻燈片縮放效果

slideShadows布林值true

啟用幻燈片陰影

stretch數字0

幻燈片之間的拉伸空間(以像素為單位)

翻轉效果

請務必將 effect 參數設定為 'flip',此功能才能正常運作。

翻轉效果參數

名稱類型預設值說明
limitRotation布林值true

限制邊緣幻燈片旋轉

slideShadows布林值true

啟用幻燈片陰影

立方體效果

請務必將 effect 參數設定為 'cube',此功能才能正常運作。

立方體效果參數

名稱類型預設值說明
shadow布林值true

啟用主滑動條陰影

shadowOffset數字20

主陰影偏移量(以像素為單位)

shadowScale數字0.94

主陰影縮放比例

slideShadows布林值true

啟用幻燈片陰影

卡片效果

請務必將 effect 參數設定為 'cards',此功能才能正常運作。

卡片效果參數

名稱類型預設值說明
perSlideOffset數字8

每個幻燈片的偏移距離(以像素為單位)

perSlideRotate數字2

每個幻燈片的旋轉角度(以度為單位)

rotate布林值true

啟用卡片旋轉

slideShadows布林值true

啟用幻燈片陰影

創意效果

請務必將 effect 參數設定為 'creative',此功能才能正常運作。

創意效果參數

名稱類型預設值說明
limitProgress數字1

將進度/偏移限制為側邊幻燈片的數量。如果為 1,則前一個/下一個之後的所有幻燈片將具有相同的狀態。如果為 2,則活動幻燈片之前/之後的第二個之後的所有幻燈片將具有相同的狀態,依此類推。

nextCreativeEffectTransform

下一個幻燈片轉換。

{
  // Array with translate X, Y and Z values
  translate: (string | number)[];
  // Array with rotate X, Y and Z values (in deg)
  rotate?: number[];
  // Slide opacity
  opacity?: number;
  // Slide scale
  scale?: number;
  // Enables slide shadow
  shadow?: boolean;
  // Transform origin, e.g. `left bottom`
  origin?: string;
}
perspective布林值true

如果您的自訂轉換需要 3D 轉換 (translateZrotateXrotateY),請啟用此參數

prevCreativeEffectTransform

上一個幻燈片轉換。接受以下類型的物件

{
  // Array with translate X, Y and Z values
  translate: (string | number)[];
  // Array with rotate X, Y and Z values (in deg)
  rotate?: number[];
  // Slide opacity
  opacity?: number;
  // Slide scale
  scale?: number;
  // Enables slide shadow
  shadow?: boolean;
  // Transform origin, e.g. `left bottom`
  origin?: string;
}
progressMultiplier數字1

允許乘數幻燈片轉換和不透明度。

shadowPerProgress布林值false

根據 limitProgress 拆分每個幻燈片的陰影「不透明度」(僅在啟用轉換陰影時)。例如,設定 limitProgress: 2 並啟用 shadowPerProgress,將在活動幻燈片旁邊的兩個幻燈片上將陰影不透明度設定為 0.51。如果停用此參數,則活動幻燈片以外的所有幻燈片都將具有不透明度為 1 的陰影

縮圖

除了 控制器 元件之外,Swiper 還提供「縮圖」元件,其設計目的是以比用於同步兩個滑動條的「控制器」更正確的方式與其他縮圖滑動條一起運作。

縮圖參數

名稱類型預設值說明
autoScrollOffset數字0

允許設定從邊緣的哪個縮圖活動幻燈片應自動移動捲動縮圖。例如,如果設定為 1,並且最後一個可見的縮圖將被啟用(從邊緣算起第 1 個),則它將自動捲動縮圖

multipleActiveThumbs布林值true

啟用後,可能會啟用多個縮圖幻燈片

slideThumbActiveClass字串'swiper-slide-thumb-active'

將新增至啟用的縮圖滑動條幻燈片的其他類別

swiper任何null

用作縮圖的滑動條的 Swiper 執行個體,或包含用於初始化縮圖滑動條的 Swiper 參數的物件

thumbsContainerClass字串'swiper-thumbs'

將新增至縮圖滑動條的其他類別

縮圖方法

屬性
swiper.swiper任何

縮圖滑動條的 Swiper 執行個體

方法
swiper.init()

初始化縮圖

swiper.update(initial)

更新縮圖

縮放

Swiper 支援縮放圖片功能(類似於您在 iOS 上瀏覽單張照片時所看到的),您可以透過捏合手勢或雙擊圖片來放大/縮小圖片。在這種情況下,需要其他佈局

<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide">
      <div class="swiper-zoom-container">
        <img src="path/to/image1.jpg" />
      </div>
    </div>
    <div class="swiper-slide">
      <div class="swiper-zoom-container">
        <img src="path/to/image2.jpg" />
      </div>
    </div>
    <div class="swiper-slide">Plain slide with text</div>
    <div class="swiper-slide">
      <!-- Override maxRatio parameter -->
      <div class="swiper-zoom-container" data-swiper-zoom="5">
        <img src="path/to/image1.jpg" />
      </div>
    </div>
  </div>
</div>
  • 所有「可縮放」的圖片都應使用類別 swiper-zoom-container 的 div 包裝。
  • 依預設,它預期會縮放 imgpicturecanvas 元素之一。如果您想要在其他自訂元素上進行縮放,只需將類別 swiper-zoom-target 新增至此元素即可。例如
    <div class="swiper">
      <div class="swiper-wrapper">
        <div class="swiper-slide">
          <div class="swiper-zoom-container">
            <!-- custom zoomable element -->
            <div
              class="swiper-zoom-target"
              style="background-image: url(...)"
            ></div>
          </div>
        </div>
      </div>
    </div>
    
  • 您可以透過在縮放容器上使用 data-swiper-zoom 屬性來覆寫特定幻燈片的 maxRatio 參數。

縮放參數

名稱類型預設值說明
containerClass字串'swiper-zoom-container'

縮放容器的 CSS 類別名稱

limitToOriginalSize布林值false

如果設定為 true,圖片的縮放將不會超過其原始大小的 100%

maxRatio數字3

最大圖片縮放乘數

minRatio數字1

最小圖片縮放乘數

panOnMouseMove布林值false

如果設定為 true,則當滑鼠在圖片上移動時,放大的圖片會自動平移

toggle布林值true

啟用/停用透過雙擊幻燈片來放大

zoomedSlideClass字串'swiper-slide-zoomed'

放大容器的 CSS 類別名稱

縮放方法

屬性
swiper.enabled布林值

是否已啟用縮放模組

swiper.scale數字

目前的圖片縮放比例

方法
swiper.disable()

停用縮放模組

swiper.enable()

啟用縮放模組

swiper.in(ratio)

放大目前活動幻燈片的圖片。選擇性地接受自訂縮放比例

swiper.out()

縮小目前活動幻燈片的圖片

swiper.toggle(event)

切換目前活動幻燈片的圖片縮放

縮放事件

名稱引數說明
zoomChange(swiper, 縮放比例, imageEl, slideEl)

縮放變更時將觸發事件

鍵盤控制

鍵盤控制參數

名稱類型預設值說明
enabled布林值false

設定為 true 以啟用鍵盤控制

onlyInViewport布林值true

啟用時,將僅控制目前在可視範圍內的滑動軸

pageUpDown布林值true

啟用時,將使用 Page Up 和 Page Down 鍵進行鍵盤導覽

鍵盤控制方法

屬性
swiper.enabled布林值

是否啟用鍵盤控制

方法
swiper.disable()

停用鍵盤控制

swiper.enable()

啟用鍵盤控制

鍵盤事件

名稱引數說明
keyPress(swiper, keyCode)

按下按鍵時將觸發事件

滑鼠滾輪控制

滑鼠滾輪控制參數

名稱類型預設值說明
enabled布林值false

設定為 true 以啟用滑鼠滾輪控制

eventsTarget任何'container'

接受滑鼠滾輪事件的容器之 CSS 選擇器字串或 HTML 元素。預設為 swiper

forceToAxis布林值false

設定為 true 強制滑鼠滾輪滑動到軸向。因此,在水平模式下,滑鼠滾輪僅在水平滾動時有效,而在垂直模式下僅在垂直滾動時有效。

invert布林值false

設定為 true 以反轉滑動方向

noMousewheelClass字串'swiper-no-mousewheel'

將忽略使用此類別的元素的滾動

releaseOnEdges布林值false

設定為 true,當滑動軸處於邊緣位置(開頭或結尾)時,滑動軸將釋放滑鼠滾輪事件並允許頁面滾動

sensitivity數字1

滑鼠滾輪資料的乘數,可調整滑鼠滾輪靈敏度

thresholdDeltanull | 數字null

觸發滑動軸滑動變更的最小滑鼠滾輪滾動差值

thresholdTimenull | 數字null

觸發滑動軸滑動變更的最小滑鼠滾輪滾動時間差(以毫秒為單位)

滑鼠滾輪控制方法

屬性
swiper.enabled布林值

是否啟用滑鼠滾輪控制

方法
swiper.disable()

停用滑鼠滾輪控制

swiper.enable()

啟用滑鼠滾輪控制

滑鼠滾輪事件

名稱引數說明
scroll(swiper, event)

滑鼠滾輪滾動時將觸發事件

虛擬幻燈片

虛擬幻燈片模組允許在 DOM 中僅保留所需的幻燈片數量。如果您有大量的幻燈片,特別是具有複雜 DOM 樹或圖像的幻燈片時,這在效能和記憶體問題方面非常有用。

請注意,根據虛擬幻燈片的實作,它不適用於 Grid 模組和 slidesPerView: 'auto'

虛擬幻燈片參數

名稱類型預設值說明
addSlidesAfter數字0

增加活動幻燈片後預先呈現的幻燈片數量

addSlidesBefore數字0

增加活動幻燈片前預先呈現的幻燈片數量

cache布林值true

啟用呈現的幻燈片 HTML 元素的 DOM 快取。一旦呈現,它們將被儲存到快取中並從快取中重複使用。

enabled布林值false

是否啟用虛擬幻燈片

renderExternalfunction(資料)

用於外部呈現的函式(例如,使用其他程式庫來處理 DOM 操作和狀態,例如 React.js 或 Vue.js)。作為參數,它接受具有以下屬性的 data 物件

  • offset - 幻燈片在 px 中的左/頂部偏移量
  • from - 需要呈現的第一張幻燈片的索引
  • to - 需要呈現的最後一張幻燈片的索引
  • slides - 要呈現的幻燈片項目陣列
renderExternalUpdate布林值true

啟用時(預設值),它會在呼叫 renderExternal 後立即更新 Swiper 版面配置。當與以非同步方式呈現的呈現程式庫一起使用時,可用於停用並手動更新 swiper

renderSlidefunction(slide, index)

用於呈現幻燈片的函式。作為參數,它接受 slides 陣列的當前幻燈片項目和當前幻燈片的索引編號。函式必須傳回滑動軸幻燈片的外部 HTML 或幻燈片 HTML 元素。

slidesT[][]

幻燈片陣列

虛擬幻燈片方法

屬性
swiper.cache物件

具有快取的幻燈片 HTML 元素的物件

swiper.from數字

第一個呈現的幻燈片的索引

swiper.slidesT[]

透過 virtual.slides 參數傳遞的幻燈片項目陣列

swiper.to數字

最後一個呈現的幻燈片的索引

方法
swiper.appendSlide(slide)

附加幻燈片。slides 可以是單個幻燈片項目或具有此類幻燈片的陣列。

僅適用於核心版本(在 React 和 Vue 中,應透過修改幻燈片陣列/資料/來源來完成)

swiper.prependSlide(slide)

前置幻燈片。slides 可以是單個幻燈片項目或具有此類幻燈片的陣列。

僅適用於核心版本(在 React 和 Vue 中,應透過修改幻燈片陣列/資料/來源來完成)

swiper.removeAllSlides()

移除所有幻燈片

僅適用於核心版本(在 React 和 Vue 中,應透過修改幻燈片陣列/資料/來源來完成)

swiper.removeSlide(slideIndexes)

移除特定幻燈片或多個幻燈片。slideIndexes 可以是要移除的幻燈片索引數字或具有索引的陣列。

僅適用於核心版本(在 React 和 Vue 中,應透過修改幻燈片陣列/資料/來源來完成)

swiper.update(force)

更新虛擬幻燈片狀態

虛擬幻燈片 Dom

自版本 9 起,Swiper 虛擬幻燈片可以使用最初在 DOM 中呈現的幻燈片。在初始化時,它會將它們從 DOM 中移除、快取,然後重新使用所需的幻燈片

<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide">Slide 1</div>
    <div class="swiper-slide">Slide 2</div>
    ...
    <div class="swiper-slide">Slide 100</div>
  </div>
</div>
<script>
  const swiper = new Swiper('.swiper', {
    virtual: {
      enabled: true,
    },
  });
</script>

雜湊導覽

雜湊導覽旨在連結到特定的幻燈片,以便載入時開啟特定幻燈片的頁面。

為了使其運作,您需要傳遞 hashNavigation:true 參數,並在 data-hash 屬性中新增幻燈片雜湊值來啟用它

<div class="swiper">
  <div class="swiper-wrapper">
    <div class="swiper-slide" data-hash="slide1">Slide 1</div>
    <div class="swiper-slide" data-hash="slide2">Slide 2</div>
    <div class="swiper-slide" data-hash="slide3">Slide 3</div>
    <div class="swiper-slide" data-hash="slide4">Slide 4</div>
    <div class="swiper-slide" data-hash="slide5">Slide 5</div>
    ...
  </div>
</div>
const swiper = new Swiper('.swiper', {
  //enable hash navigation
  hashNavigation: true,
});

雜湊導覽參數

名稱類型預設值說明
getSlideIndexfunction(swiper, hash)

設計用於虛擬幻燈片,當無法透過雜湊值在 DOM 中找到幻燈片時(例如,尚未呈現)

replaceState布林值false

除了雜湊導覽外,還可以將當前 URL 狀態替換為新的 URL 狀態,而不是將其新增至歷程記錄中

watchState布林值false

設定為 true 以啟用透過瀏覽器歷程記錄或直接在文件位置設定雜湊值來導覽幻燈片(啟用雜湊導覽時)

雜湊導覽事件

名稱引數說明
hashChange(swiper)

視窗雜湊變更時將觸發事件

hashSet(swiper)

滑動軸更新雜湊時將觸發事件

歷程記錄導覽

歷程記錄導覽參數

名稱類型預設值說明
enabled布林值false

啟用歷程記錄外掛程式。

keepQuery布林值false

變更瀏覽器 URL 時保留查詢參數。

key字串'slides'

幻燈片的 URL 金鑰

replaceState布林值false

除了雜湊導覽或歷程記錄之外,還可以將目前的 URL 狀態替換為新的 URL 狀態,而不是將其新增到歷程記錄中

root字串''

滑動軸頁面根目錄,當您在非根網站頁面上使用 Swiper 歷程記錄模式時,此選項很有用。例如,可以是 https://my-website.com/https://my-website.com/subpage//subpage/

控制器

控制器參數

名稱類型預設值說明
by'slide' | 'container''slide'

定義如何控制另一個滑動軸:逐張幻燈片(與另一個滑動軸的格線相關)或根據所有幻燈片/容器(取決於總滑動軸百分比)。

control任何

在此處傳遞另一個 Swiper 執行個體或 Swiper 執行個體陣列,這些執行個體應由這個 Swiper 控制。也接受 Swiper 元素的 CSS 選擇器字串或 Swiper 元素的 HTMLElement

inverse布林值false

設定為 true,控制將在反向方向進行

控制器方法

屬性
swiper.control任何

在此處傳遞另一個 Swiper 執行個體或 Swiper 執行個體陣列,這些執行個體應由這個 Swiper 控制

輔助功能 (a11y)

輔助功能參數

名稱類型預設值說明
containerMessagenull | 字串null

外部滑動軸容器的螢幕閱讀器訊息

containerRolenull | 字串null

要在滑動軸容器上設定的 "role" 屬性的值

containerRoleDescriptionMessagenull | 字串null

用於描述外部滑動軸容器角色的螢幕閱讀器訊息

enabled布林值true

啟用 A11y

firstSlideMessage字串'這是第一張幻燈片'

當滑動軸位於第一張幻燈片時,先前按鈕的螢幕閱讀器訊息

idnull | 字串 | 數字null

要在滑動軸包裝器上設定的 id 屬性的值。如果為 null,將自動產生

itemRoleDescriptionMessagenull | 字串null

用於描述幻燈片元素角色的螢幕閱讀器訊息

lastSlideMessage字串'這是最後一張幻燈片'

當 Swiper 處於最後一張投影片時,螢幕閱讀器用於「下一張」按鈕的訊息

nextSlideMessage字串'下一張投影片'

螢幕閱讀器用於「下一張」按鈕的訊息

notificationClass字串'swiper-notification'

A11y 通知的 CSS 類別名稱

paginationBulletMessage字串'前往投影片{{index}}'

螢幕閱讀器用於單個分頁圓點的訊息

prevSlideMessage字串'上一張投影片'

螢幕閱讀器用於「上一張」按鈕的訊息

scrollOnFocus布林值true

啟用滾動到已聚焦的投影片

slideLabelMessage字串'{{index}} / {{slidesLength}}'

螢幕閱讀器描述投影片元素標籤的訊息

slideRole字串'group'

Swiper 投影片 role 屬性的值

自訂建置

您有兩種方式可以製作 Swiper 的自訂版本。

使用 JS 模組

如果您的專案使用支援 JS 模組的打包器,您可以只導入您需要的模組

// Import Swiper and modules
import Swiper from 'swiper';
import { Navigation, Pagination, Scrollbar } from 'swiper/modules';

// Now you can use Swiper
const swiper = new Swiper('.swiper', {
  // Install modules
  modules: [Navigation, Pagination, Scrollbar],
  speed: 500,
  navigation: {
    nextEl: '.swiper-button-next',
    prevEl: '.swiper-button-prev',
  },
  // ...
});

已匯出以下模組

  • Virtual - 虛擬投影片模組
  • Keyboard - 鍵盤控制模組
  • Mousewheel - 滑鼠滾輪控制模組
  • Navigation - 導覽模組
  • Pagination - 分頁模組
  • Scrollbar - 滾動條模組
  • Parallax - 視差模組
  • FreeMode - 自由模式模組
  • Grid - 網格模組
  • Manipulation - 投影片操作模組(僅適用於 Core 版本)
  • Zoom - 縮放模組
  • Controller - 控制器模組
  • A11y - 無障礙模組
  • History - 歷史導覽模組
  • HashNavigation - Hash 導覽模組
  • Autoplay - 自動播放模組
  • EffectFade - 淡入淡出效果模組
  • EffectCube - 立方體效果模組
  • EffectFlip - 翻轉效果模組
  • EffectCoverflow - Coverflow 效果模組
  • EffectCards - 卡片效果模組
  • EffectCreative - 創意效果模組
  • Thumbs - 縮圖模組

使用建置腳本

Swiper 帶有 gulp 建置器,允許您建置自訂的函式庫版本,其中您可以僅包含所需的模組。我們需要以下內容

  1. Swiper GitHub 儲存庫 下載並解壓縮到本機資料夾

  2. 安裝 Node.js (如果尚未安裝)

  3. 現在,我們需要安裝所需的相依性。前往下載並解壓縮的 Swiper 儲存庫所在的資料夾,並在終端機中執行

    $ npm install
    
  4. 開啟 scripts/build-config.js 檔案

    module.exports = {
      // remove modules you don't need
      modules: [
        'virtual',
        'keyboard',
        'mousewheel',
        'navigation',
        'pagination',
        'scrollbar',
        'parallax',
        'zoom',
        'controller',
        'a11y',
        'history',
        'hash-navigation',
        'autoplay',
        'thumbs',
        'free-mode',
        'grid',
        'manipulation',
        'effect-fade',
        'effect-cube',
        'effect-flip',
        'effect-coverflow',
        'effect-creative',
        'effect-cards',
      ],
    };
    
  5. 現在,我們已準備好建置 Swiper 的自訂版本

    $ npm run build:prod
    
  6. 就這樣。產生的 CSS 和 JS 檔案及其最小化版本將在 dist/ 資料夾中可用。

TypeScript 定義

Swiper 已完整輸入,它會匯出 SwiperSwiperOptions 類型

// main.ts
import Swiper from 'swiper';
import { SwiperOptions } from 'swiper/types';

const swiperParams: SwiperOptions = {
  slidesPerView: 3,
  spaceBetween: 50,
};

const swiper = new Swiper('.swiper', swiperParams);

您也可以查看自動產生的 TypeScript 定義瀏覽器,了解所有類型、選項、屬性和方法。