<!-- 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 樣式
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 樣式是核心版本和模組的獨立樣式(套件導入)
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 樣式也是核心版本和模組的獨立樣式(套件導入)
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 的 HTML 時,我們需要使用以下函式來初始化它
new Swiper(swiperContainer, parameters) - 使用選項初始化 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 參數的物件或布林值
| |
allowSlideNext | 布林值 | true | 設定為 |
allowSlidePrev | 布林值 | true | 設定為 |
allowTouchMove | 布林值 | true | 如果為 |
autoHeight | 布林值 | false | 設定為 |
autoplay | 任何 | 具有自動播放參數的物件或布林值
| |
breakpoints | 物件 | 允許為不同的回應式斷點(螢幕尺寸)設定不同的參數。並非所有參數都可以在斷點中變更,只有那些不需要不同佈局和邏輯的參數,例如
| |
breakpointsBase | 任何 | 'window' | 斷點的基礎(測試版)。可以是 |
cardsEffect | 任何 | 具有卡片效果參數的物件
| |
centerInsufficientSlides | 布林值 | false | 啟用時,如果投影片數量少於 |
centeredSlides | 布林值 | false | 如果為 |
centeredSlidesBounds | 布林值 | false | 如果為 |
containerModifierClass | 字串 | 'swiper-' | 可根據不同參數添加到 swiper 容器的修飾符 CSS 類別的開頭。 |
controller | 任何 | 包含控制器參數的物件,或布林值
| |
coverflowEffect | 任何 | 包含 Coverflow 效果參數的物件。
| |
createElements | 布林值 | false | 啟用後,Swiper 會自動將幻燈片包裝在 swiper-wrapper 元素中,並會為已啟用的導航、分頁和捲軸建立所需的元素(使用它們各自的參數物件或布林值 |
creativeEffect | 任何 | 包含 Creative 效果參數的物件。
| |
cssMode | 布林值 | false | 啟用後,它將使用現代 CSS Scroll Snap API。它不支援 Swiper 的所有功能,但在簡單的配置中,可能會帶來更好的效能。 啟用時不支援的功能如下:
如果將它與其他效果(特別是 3D 效果)一起使用,則必須使用
|
cubeEffect | 任何 | 包含 Cube 效果參數的物件。
| |
direction | 'horizontal' | 'vertical' | 'horizontal' | 可以是 |
edgeSwipeDetection | 字串 | 布林值 | false | 啟用後,可以釋放 Swiper 事件,以便在應用程式中進行滑動返回操作。如果設定為 |
edgeSwipeThreshold | 數字 | 20 | 從螢幕左邊緣釋放觸控事件以在應用程式中滑動返回的區域(以像素為單位)。 |
effect | 字串 | 'slide' | 轉換效果。可以是 |
enabled | 布林值 | true | Swiper 最初是否啟用。當 Swiper 被停用時,它將會隱藏所有導航元素,並且不會回應任何事件和互動。 |
eventsPrefix | 字串 | `swiper` | Swiper 元素(網頁元件)發出的所有 DOM 事件的事件名稱前綴。 |
fadeEffect | 任何 | 包含 Fade 效果參數的物件。
| |
flipEffect | 任何 | 包含 Flip 效果參數的物件。
| |
focusableElements | 字串 | 'input, select, option, textarea, button, video, label' | 可聚焦元素的 CSS 選擇器。如果這些元素「已聚焦」,則會停用在這些元素上的滑動。 |
followFinger | 布林值 | true | 如果停用,則滑塊只有在您放開手指時才會動畫,當您將手指按住時,它不會移動。 |
freeMode | 任何 | 啟用自由模式功能。包含自由模式參數的物件,或布林值
| |
grabCursor | 布林值 | false | 此選項可能會稍微改善桌面可用性。如果為 |
grid | 任何 | 包含網格參數的物件,以啟用「多行」滑塊。
| |
hashNavigation | 任何 | 啟用幻燈片的雜湊 URL 導航。包含雜湊導航參數的物件,或布林值
| |
height | null | 數字 | null | Swiper 的高度(以像素為單位)。參數允許強制設定 Swiper 的高度。僅當您在 Swiper 隱藏時以及在 SSR 和測試環境中初始化 Swiper 時才有用,以便正確初始化 Swiper。
|
history | 任何 | 啟用歷史記錄推送狀態,其中每個幻燈片都有其自己的 URL。在此參數中,您必須指定主要幻燈片 URL(例如 包含歷史記錄導航參數的物件,或布林值
| |
init | 布林值 | true | 是否在建立執行個體時自動初始化 Swiper。如果停用,則需要透過呼叫 |
initialSlide | 數字 | 0 | 初始幻燈片的索引編號。 |
injectStyles | 字串[] | 將文字樣式注入到陰影 DOM。僅適用於 Swiper 元素。 | |
injectStylesUrls | 字串[] | 將樣式 | |
keyboard | 任何 | 啟用使用鍵盤瀏覽幻燈片。包含鍵盤參數的物件,或布林值
| |
lazyPreloadPrevNext | 數字 | 0 | 要預先載入的下一個和上一個幻燈片的數量。僅適用於使用延遲載入時。 |
lazyPreloaderClass | 字串 | 'swiper-lazy-preloader' | 延遲預先載入器的 CSS 類別名稱。 |
longSwipes | 布林值 | true | 如果要停用長滑動,請設定為 |
longSwipesMs | 數字 | 300 | 在長滑動期間觸發滑動到下一個/上一個幻燈片的最小持續時間(以毫秒為單位)。 |
longSwipesRatio | 數字 | 0.5 | 在長滑動期間觸發滑動到下一個/上一個幻燈片的比例。 |
loop | 布林值 | false | 設定為 由於循環模式的工作方式(它會重新排列幻燈片),幻燈片的總數必須是
|
loopAddBlankSlides | 布林值 | true | 如果您使用網格或 |
loopAdditionalSlides | 數字 | 0 | 允許增加循環幻燈片的數量。 |
loopPreventsSliding | 布林值 | true | 如果啟用,則在滑塊在循環模式中動畫時,slideNext/Prev 將不會執行任何動作。 |
maxBackfaceHiddenSlides | 數字 | 10 | 如果幻燈片的總數小於此處指定的值,則 Swiper 將在幻燈片元素上啟用
|
modules | any[] | 包含 Swiper 模組的陣列。
| |
mousewheel | 任何 | 啟用使用滑鼠滾輪瀏覽幻燈片。包含滑鼠滾輪參數的物件,或布林值
| |
navigation | 任何 | 包含導航參數的物件,或布林值
| |
nested | 布林值 | false | 在 Swiper 上設定為 |
noSwiping | 布林值 | true | 啟用/停用在與 |
noSwipingClass | 字串 | 'swiper-no-swiping' | 指定 |
noSwipingSelector | 字串 | 可以用來代替 | |
normalizeSlideIndex | 布林值 | true | 正規化幻燈片索引。 |
observeParents | 布林值 | false | 如果您還需要監看 Swiper 父元素的 Mutation,請設定為 |
observeSlideChildren | 布林值 | false | 如果您還需要監看 Swiper 幻燈片子元素的 Mutation,請設定為 |
observer | 布林值 | false | 設定為 |
on | 物件 | 註冊事件處理常式。 | |
onAny | 函式(handler) | 新增一個事件接聽程式,該接聽程式將在所有事件上觸發。
| |
oneWayMovement | 布林值 | false | 啟用後,無論滑動方向如何,都只會向前滑動幻燈片(單向)。 |
pagination | 任何 | 包含分頁參數的物件,或布林值
| |
parallax | 任何 | 包含視差參數的物件,或布林值
| |
passiveListeners | 布林值 | true | 在可能的情況下,預設會使用被動事件接聽程式來提高行動裝置上的捲動效能。但是,如果您需要使用 |
preventClicks | 布林值 | true | 設定為 |
preventClicksPropagation | 布林值 | true | 設定為 |
preventInteractionOnTransition | 布林值 | false | 啟用後,在轉換期間不允許透過滑動或導航/分頁按鈕來變更幻燈片。 |
resistance | 布林值 | true | 如果要停用阻力邊界,請設定為 |
resistanceRatio | 數字 | 0.85 | 此選項可讓您控制阻力比率。 |
resizeObserver | 布林值 | true | 啟用後,它將在 swiper 容器上使用 ResizeObserver(如果瀏覽器支援),以偵測容器大小調整(而不是監看視窗大小調整)。 |
rewind | 布林值 | false | 設定為
|
roundLengths | 布林值 | false | 設定為 |
runCallbacksOnInit | 布林值 | true | 在 swiper 初始化時觸發 Transition/SlideChange/Start/End 事件。如果您的 initialSlide 不是 0,或者您使用循環模式,則會在初始化時觸發此類事件。 |
scrollbar | 任何 | 包含捲軸參數的物件,或布林值
| |
setWrapperSize | 布林值 | false | 啟用此選項後,外掛程式將在 swiper 包裝器上設定與所有幻燈片總大小相等的寬度/高度。主要應作為不支援 flexbox 版面配置的瀏覽器的相容性回退選項。 |
shortSwipes | 布林值 | true | 如果要停用短滑動,請設定為 |
simulateTouch | 布林值 | true | 如果為 |
slideActiveClass | 字串 | 'swiper-slide-active' | 目前活動幻燈片的 CSS 類別名稱。
|
slideBlankClass | 字串 | 'swiper-slide-blank' | 由循環模式新增的空白幻燈片的 CSS 類別名稱(當
|
slideClass | 字串 | 'swiper-slide' | 幻燈片的 CSS 類別名稱。
|
slideFullyVisibleClass | 字串 | 'swiper-slide-fully-visible' | 完全可見的滑塊(當整個滑塊都在視窗中時)的 CSS 類別名稱
|
slideNextClass | 字串 | 'swiper-slide-next' | 目前活動滑塊之後的滑塊的 CSS 類別名稱
|
slidePrevClass | 字串 | 'swiper-slide-prev' | 目前活動滑塊之前的滑塊的 CSS 類別名稱
|
slideToClickedSlide | 布林值 | false | 設為 |
slideVisibleClass | 字串 | 'swiper-slide-visible' | 目前/部分可見的滑塊的 CSS 類別名稱
|
slidesOffsetAfter | 數字 | 0 | 在容器末端(所有滑塊之後)加入額外的滑塊偏移量(以像素為單位) |
slidesOffsetBefore | 數字 | 0 | 在容器開頭(所有滑塊之前)加入額外的滑塊偏移量(以像素為單位) |
slidesPerGroup | 數字 | 1 | 設定滑塊數量以定義和啟用群組滑動。與 slidesPerView > 1 一起使用很有用 |
slidesPerGroupAuto | 布林值 | false | 此參數僅適用於 |
slidesPerGroupSkip | 數字 | 0 | 此參數以以下方式運作:如果 如果 |
slidesPerView | 數字 | 'auto' | 1 | 每個視圖的滑塊數量(在滑塊容器上同時可見的滑塊)。
|
spaceBetween | 字串 | 數字 | 0 | 滑塊之間的距離(以像素為單位)。
|
speed | 數字 | 300 | 滑塊之間轉換的持續時間(以毫秒為單位) |
swipeHandler | 任何 | null | 具有分頁的容器的 CSS 選擇器或 HTML 元素字串,該容器將作為滑動的唯一可用處理器 |
swiperElementNodeName | 字串 | 'SWIPER-CONTAINER' | 滑塊元素節點的名稱;用於偵測 Web 元件渲染 |
threshold | 數字 | 5 | 閾值(以像素為單位)。如果「觸摸距離」低於此值,則滑塊不會移動 |
thumbs | 任何 | 包含縮圖元件參數的物件
| |
touchAngle | 數字 | 45 | 觸發觸摸移動的允許角度(以度為單位) |
touchEventsTarget | 'container' | 'wrapper' | 'wrapper' | 要監聽觸摸事件的目標元素。可以是 |
touchMoveStopPropagation | 布林值 | false | 如果啟用,則會停止「touchmove」的傳播 |
touchRatio | 數字 | 1 | 觸摸比例 |
touchReleaseOnEdges | 布林值 | false | 啟用後,在滑塊邊緣位置(開始、結束)釋放觸摸事件,以允許進一步的頁面滾動。此功能僅適用於「觸摸」事件(而非指標事件),因此它將在 iOS/Android 裝置上運作,而不會在具有指標事件的 Windows 裝置上運作。此外, |
touchStartForcePreventDefault | 布林值 | false | 強制始終阻止 |
touchStartPreventDefault | 布林值 | true | 如果停用,則不會阻止 |
uniqueNavElements | 布林值 | true | 如果啟用(預設情況下),並且導覽元素的參數以字串形式傳遞(如 |
updateOnWindowResize | 布林值 | true | Swiper 將在視窗調整大小(方向變更)時重新計算滑塊位置 |
url | null | 字串 | null | 在伺服器端呈現並啟用歷程記錄時,需要用於活動滑塊偵測 |
userAgent | null | 字串 | null | userAgent 字串。在伺服器端呈現時,需要用於瀏覽器/裝置偵測 |
virtual | 任何 | 啟用虛擬滑塊功能。包含虛擬滑塊參數的物件或布林值
| |
virtualTranslate | 布林值 | false | 啟用此選項,滑塊將照常運作,但它不會移動,不會在包裝器上設定實際的轉換值。當您可能需要建立自訂滑塊轉換時很有用 |
watchOverflow | 布林值 | true | 啟用後,如果滑動的滑塊不足,Swiper 將被停用並隱藏導覽按鈕。 |
watchSlidesProgress | 布林值 | false | 啟用此功能可計算每個滑塊的進度和可見性(視窗中的滑塊將具有額外的可見類別) |
width | null | 數字 | null | 滑塊寬度(以像素為單位)。此參數允許強制設定滑塊寬度。僅當您在隱藏時初始化滑塊,以及在 SSR 和測試環境中進行正確的滑塊初始化時才有用
|
wrapperClass | 字串 | 'swiper-wrapper' | 滑塊包裝器的 CSS 類別名稱
|
zoom | 任何 | 啟用縮放功能。包含縮放參數的物件或布林值
|
在初始化滑塊後,我們在變數中(如上面範例中的 swiper
變數)擁有其初始化的執行個體,其中包含有用的方法和屬性
屬性 | ||
---|---|---|
swiper.a11y | 任何 | |
swiper.activeIndex | 數字 | 目前活動滑塊的索引編號
|
swiper.allowSlideNext | 布林值 | 透過將 |
swiper.allowSlidePrev | 布林值 | 透過將 |
swiper.allowTouchMove | 布林值 | 透過將 |
swiper.animating | 布林值 | 如果滑塊正在轉換中,則為 |
swiper.autoplay | 任何 | |
swiper.cardsEffect | 任何 | |
swiper.clickedIndex | 數字 | 上次點擊的滑塊的索引編號 |
swiper.clickedSlide | HTMLElement | 連結到上次點擊的滑塊 (HTMLElement) |
swiper.controller | 任何 | |
swiper.coverflowEffect | 任何 | |
swiper.creativeEffect | 任何 | |
swiper.cubeEffect | 任何 | |
swiper.defaults | 任何 | Swiper 預設選項 |
swiper.el | HTMLElement | 滑塊容器 HTML 元素 |
swiper.extendedDefaults | 任何 | 包含全域 Swiper 擴充選項的物件 |
swiper.fadeEffect | 任何 | |
swiper.flipEffect | 任何 | |
swiper.freeMode | 任何 | |
swiper.hashNavigation | 任何 | |
swiper.height | 數字 | 容器的高度 |
swiper.history | 任何 | |
swiper.isBeginning | 布林值 | 如果滑塊位於最「左側」/「頂部」位置,則為 |
swiper.isEnd | 布林值 | 如果滑塊位於最「右側」/「底部」位置,則為 |
swiper.isLocked | 布林值 | 如果滑塊被「鎖定」(透過 |
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.slides | HTMLElement[] | 滑塊 HTML 元素的陣列。若要取得特定的滑塊 HTMLElement,請使用 |
swiper.slidesEl | HTMLElement | 包裝器 HTML 元素 |
swiper.slidesGrid | number[] | 滑塊網格 |
swiper.slidesSizesGrid | number[] | 滑塊寬度的陣列 |
swiper.snapGrid | number[] | 滑塊貼齊網格 |
swiper.snapIndex | 數字 |
|
swiper.swipeDirection | 'prev' | 'next' | 滑動方向 |
swiper.thumbs | 任何 | |
swiper.touches | 物件 | 包含以下觸摸事件屬性的物件
|
swiper.translate | 數字 | 包裝器轉換的目前值 |
swiper.virtual | 任何 | |
swiper.width | 數字 | 容器的寬度 |
swiper.wrapperEl | HTMLElement | 包裝器 HTML 元素 |
swiper.zoom | 任何 | |
方法 | ||
swiper.attachEvents() | 再次附加所有事件監聽器 | |
swiper.changeDirection(direction, needUpdate) | 將滑塊方向從水平變更為垂直,反之亦然。
| |
swiper.changeLanguageDirection(direction) | 變更滑塊語言
| |
swiper.destroy(deleteInstance, cleanStyles) | 銷毀滑塊執行個體並分離所有事件監聽器
| |
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 是最後一個滑塊上的最大位置(偏移)
| |
swiper.setTranslate(translate) | 設定 swiper 包裹層的自訂 CSS3 transform 的 translate 值 | |
swiper.slideNext(speed, runCallbacks) | 執行過渡動畫到下一張投影片。
| |
swiper.slidePrev(speed, runCallbacks) | 執行過渡動畫到上一張投影片。
| |
swiper.slideReset(speed, runCallbacks) | 將 swiper 位置重設為目前活動的投影片,持續時間等於 'speed' 參數。
| |
swiper.slideTo(index, speed, runCallbacks) | 執行過渡動畫到索引編號等於 'index' 參數的投影片,持續時間等於 'speed' 參數。
| |
swiper.slideToClosest(speed, runCallbacks) | 將 swiper 位置重設為最接近的投影片/貼齊點,持續時間等於 'speed' 參數。
| |
swiper.slideToLoop(index, speed, runCallbacks) | 與 .slideTo 執行相同操作,但用於啟用循環模式時。因此,此方法將滑動到 realIndex 與傳遞的 index 相符的投影片。
| |
swiper.slidesPerViewDynamic() | 取得動態計算的每視窗投影片數量,僅在 slidesPerView 設定為 | |
swiper.translateTo(translate, speed, runCallbacks, translateBounds) | 為 swiper 包裹層的自訂 CSS3 transform 的 translate 值製作動畫
| |
swiper.unsetGrabCursor() | 取消抓取游標 | |
swiper.update() | 當您手動新增/移除投影片,或隱藏/顯示投影片,或對 Swiper 進行任何自訂 DOM 修改後,應呼叫此方法。此方法也包含以下您可以單獨使用的方法的子呼叫 | |
swiper.updateAutoHeight(speed) | 強制 swiper 更新其高度 (當啟用 autoHeight 時),持續時間等於 'speed' 參數
| |
swiper.updateProgress() | 重新計算 swiper 進度 | |
swiper.updateSize() | 重新計算 swiper 容器大小 | |
swiper.updateSlides() | 重新計算投影片數量及其偏移量。當您使用 JavaScript 新增/移除投影片後有用 | |
swiper.updateSlidesClasses() | 更新投影片和圓點上的 active/prev/next 類別 | |
swiper.use(modules) | 在執行期間於 Swiper 上安裝模組。 |
Swiper 帶有一些您可以監聽的實用事件。事件可以透過兩種方式指派
在 swiper 初始化時使用 on
參數
const swiper = new Swiper('.swiper', {
// ...
on: {
init: function () {
console.log('swiper initialized');
},
},
});
在 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 時,將會觸發事件。接收 |
destroy | (swiper) | 當 swiper 銷毀時,將會觸發事件 |
doubleClick | (swiper, event) | 當使用者雙擊/輕觸 Swiper 時,將會觸發事件 |
doubleTap | (swiper, event) | 當使用者雙擊/輕觸 Swiper 的容器時,將會觸發事件。接收 |
fromEdge | (swiper) | 當 Swiper 從開始或結束位置移動時,將會觸發事件 |
init | (swiper) | 在 Swiper 初始化完成後,立即觸發。
|
lock | (swiper) | 當 swiper 被鎖定時 (當啟用 |
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 上移動手指時,將會觸發事件。接收 |
slidesGridLengthChange | (swiper) | 當投影片網格變更時,將會觸發事件 |
slidesLengthChange | (swiper) | 當投影片數量變更時,將會觸發事件 |
slidesUpdated | (swiper) | 在計算並更新投影片及其大小之後,將會觸發事件 |
snapGridLengthChange | (swiper) | 當貼齊網格變更時,將會觸發事件 |
snapIndexChange | (swiper) | 當貼齊索引變更時,將會觸發事件 |
tap | (swiper, event) | 當使用者點擊/輕觸 Swiper 時,將會觸發事件。接收 |
toEdge | (swiper) | 當 Swiper 移動到開始或結束位置時,將會觸發事件 |
touchEnd | (swiper, event) | 當使用者釋放 Swiper 時,將會觸發事件。接收 |
touchMove | (swiper, event) | 當使用者觸摸並在 Swiper 上移動手指時,將會觸發事件。接收 |
touchMoveOpposite | (swiper, event) | 當使用者觸摸並在 Swiper 上移動手指,方向與方向參數相反時,將會觸發事件。接收 |
touchStart | (swiper, event) | 當使用者觸摸 Swiper 時,將會觸發事件。接收 |
transitionEnd | (swiper) | 在過渡動畫結束後,將會觸發事件。 |
transitionStart | (swiper) | 在過渡動畫開始時,將會觸發事件。 |
unlock | (swiper) | 當 swiper 被解除鎖定時 (當啟用 |
update | (swiper) | 在呼叫 swiper.update() 後,將會觸發事件 |
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
disabledClass | 字串 | 'swiper-button-disabled' | 當導覽按鈕停用時,新增至導覽按鈕的 CSS 類別名稱 |
enabled | 布林值 | 與斷點搭配使用的布林屬性,可在特定斷點上啟用/停用導覽 | |
字串 | '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.nextEl | HTMLElement | 「下一張」導覽按鈕的 HTMLElement |
swiper.prevEl | HTMLElement | 「上一張」導覽按鈕的 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 標籤。僅適用於 |
clickable | 布林值 | false | 如果為 |
clickableClass | 字串 | 'swiper-pagination-clickable' | 當分頁可點擊時,設定到分頁的 CSS 類別名稱 |
currentClass | 字串 | 'swiper-pagination-current' | 在「分數」分頁中,目前活動索引的元素的 CSS 類別名稱 |
dynamicBullets | 布林值 | false | 如果您使用帶有大量幻燈片的項目符號分頁,建議啟用此功能。這樣它將僅同時保持少數項目符號可見。 |
dynamicMainBullets | 數字 | 1 | 啟用 |
el | 任何 | null | 帶有 CSS 選擇器或包含分頁的 HTML 元素的字串 |
enabled | 布林值 | 布林值屬性,用於與斷點一起使用,以在特定斷點上啟用/停用分頁 | |
formatFractionCurrent | function(number) | 格式化分數分頁的目前數字。函式接收目前數字,您需要返回格式化的值 | |
formatFractionTotal | function(number) | 格式化分數分頁的總數字。函式接收總數,您需要返回格式化的值 | |
字串 | '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 的 |
progressbarOppositeClass | 字串 | 'swiper-pagination-progressbar-opposite' | 分頁進度條相反的 CSS 類別名稱 |
renderBullet | function(index, className) | 此參數允許完全自訂分頁項目符號,您需要在這裡傳遞一個函式,該函式接受分頁項目符號的
| |
renderCustom | function(swiper, current, total) | 此參數是
| |
renderFraction | function(currentClass, totalClass) | 此參數允許自訂「分數」分頁 html。僅適用於
| |
renderProgressbar | function(progressbarFillClass) | 此參數允許自訂「進度」分頁。僅適用於
| |
totalClass | 字串 | 'swiper-pagination-total' | 在「分數」分頁中,包含「快照」總數的元素的 CSS 類別名稱 |
type | 'progressbar' | 'bullets' | 'fraction' | 'custom' | 'bullets' | 帶有分頁類型的字串。可以是 |
verticalClass | 字串 | 'swiper-pagination-vertical' | 在垂直 Swiper 中設定到分頁的 CSS 類別名稱 |
屬性 | ||
---|---|---|
swiper.bullets | HTMLElement[] | 分頁項目符號 HTML 元素的陣列。要取得特定的幻燈片 HTMLElement,請使用 |
swiper.el | HTMLElement | 分頁容器元素的 HTMLElement |
方法 | ||
swiper.destroy() | 銷毀分頁 | |
swiper.init() | 初始化分頁 | |
swiper.render() | 呈現分頁版面配置 | |
swiper.update() | 更新分頁狀態(已啟用/已停用/活動) |
名稱 | 引數 | 說明 |
---|---|---|
paginationHide | (swiper) | 分頁隱藏時將觸發事件 |
paginationRender | (swiper, paginationEl) | 分頁呈現後將觸發事件 |
paginationShow | (swiper) | 分頁顯示時將觸發事件 |
paginationUpdate | (swiper, paginationEl) | 分頁更新時將觸發事件 |
{
--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 | 設定為 |
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 | 設定為 |
verticalClass | 字串 | 'swiper-scrollbar-vertical' | 在垂直 Swiper 中設定到捲軸的 CSS 類別名稱 |
屬性 | ||
---|---|---|
swiper.dragEl | HTMLElement | 捲軸可拖曳控制項元素的 HTMLElement |
swiper.el | HTMLElement | 捲軸容器元素的 HTMLElement |
方法 | ||
swiper.destroy() | 銷毀捲軸 | |
swiper.init() | 初始化捲軸 | |
swiper.setTranslate() | 更新捲軸轉換 | |
swiper.updateSize() | 更新捲軸軌道和控制項大小 |
名稱 | 引數 | 說明 |
---|---|---|
scrollbarDragEnd | (swiper, event) | 可拖曳捲軸拖曳結束時將觸發事件 |
scrollbarDragMove | (swiper, event) | 可拖曳捲軸拖曳移動時將觸發事件 |
scrollbarDragStart | (swiper, event) | 可拖曳捲軸拖曳開始時將觸發事件 |
{
--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 | 轉換之間的延遲(以毫秒為單位)。如果未指定此參數,則會停用自動播放 如果您需要為特定的幻燈片指定不同的延遲,您可以在幻燈片上使用
|
disableOnInteraction | 布林值 | true | 設定為 |
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 | 如果您想在自由模式中停用動量彈跳,請設定為 |
momentumBounceRatio | 數字 | 1 | 數值越高,產生的動量彈跳效果越大 |
momentumRatio | 數字 | 1 | 數值越高,您釋放滑塊後產生的動量距離越大 |
momentumVelocityRatio | 數字 | 1 | 數值越高,您釋放滑塊後產生的動量速度越大 |
sticky | 布林值 | false | 設定為啟用,以在自由模式中啟用對齊到幻燈片位置 |
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
fill | 'row' | 'column' | 'column' | 可以是
|
rows | 數字 | 1 | 幻燈片列數,用於多列版面配置 |
操作模組為 Swiper 增加了實用的方法來操作滑動內容。它僅適用於 Swiper Core 版本,不應與 Swiper React 或 Vue 一起使用。
方法 | ||
---|---|---|
swiper.addSlide(index, slides) | 在指定的索引位置新增幻燈片。slides 可以是 HTMLElement 或 HTML 字串形式的新幻燈片,或包含這些幻燈片的陣列,例如:
| |
swiper.appendSlide(slides) | 在末尾新增幻燈片。slides 可以是 HTMLElement 或 HTML 字串形式的新幻燈片,或包含這些幻燈片的陣列,例如:
| |
swiper.prependSlide(slides) | 在開頭新增幻燈片。slides 可以是 HTMLElement 或 HTML 字串形式的新幻燈片,或包含這些幻燈片的陣列,例如:
| |
swiper.removeAllSlides() | 移除所有幻燈片 | |
swiper.removeSlide(slideIndex) | 移除選定的幻燈片。slideIndex 可以是要移除的幻燈片索引的數字,或包含索引的陣列。
|
Swiper 支援用於 swiper/slides 巢狀元素的視差轉場效果。支援兩種視差元素類型
swiper
的直接子元素。此類元素的視差效果將取決於滑動總進度。適用於視差背景要啟用視差效果,您需要使用傳入的 parallax:true
參數初始化 Swiper,並將以下屬性之一(或混合)新增至必要的元素
data-swiper-parallax
- 啟用 transform-translate 視差轉場。此屬性可以接受
number
- 以像素為單位的值(如上例中的標題、副標題),根據進度移動元素。在這種情況下,此元素將根據幻燈片位置(下一個或上一個)移動 ± 此值(以像素為單位)percentage
-(如「parallax-bg」)根據進度及其大小移動元素。在這種情況下,此元素將根據幻燈片位置(下一個或上一個)移動 ± 其大小的此百分比(水平方向的寬度和垂直方向的高度)。因此,如果元素的寬度為 400px,並且您指定 data-swiper-parallax="50%",則它將移動 ± 200pxdata-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 | 將進度/偏移限制為側邊幻燈片的數量。如果為 |
next | CreativeEffectTransform | 下一個幻燈片轉換。
| |
perspective | 布林值 | true | 如果您的自訂轉換需要 3D 轉換 ( |
prev | CreativeEffectTransform | 上一個幻燈片轉換。接受以下類型的物件
| |
progressMultiplier | 數字 | 1 | 允許乘數幻燈片轉換和不透明度。 |
shadowPerProgress | 布林值 | false | 根據 |
除了 控制器 元件之外,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 包裝。img
、picture
或 canvas
元素之一。如果您想要在其他自訂元素上進行縮放,只需將類別 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 | 設定為 |
onlyInViewport | 布林值 | true | 啟用時,將僅控制目前在可視範圍內的滑動軸 |
pageUpDown | 布林值 | true | 啟用時,將使用 Page Up 和 Page Down 鍵進行鍵盤導覽 |
屬性 | ||
---|---|---|
swiper.enabled | 布林值 | 是否啟用鍵盤控制 |
方法 | ||
swiper.disable() | 停用鍵盤控制 | |
swiper.enable() | 啟用鍵盤控制 |
名稱 | 引數 | 說明 |
---|---|---|
keyPress | (swiper, keyCode) | 按下按鍵時將觸發事件 |
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
enabled | 布林值 | false | 設定為 |
eventsTarget | 任何 | 'container' | 接受滑鼠滾輪事件的容器之 CSS 選擇器字串或 HTML 元素。預設為 swiper |
forceToAxis | 布林值 | false | 設定為 |
invert | 布林值 | false | 設定為 |
noMousewheelClass | 字串 | 'swiper-no-mousewheel' | 將忽略使用此類別的元素的滾動 |
releaseOnEdges | 布林值 | false | 設定為 |
sensitivity | 數字 | 1 | 滑鼠滾輪資料的乘數,可調整滑鼠滾輪靈敏度 |
thresholdDelta | null | 數字 | null | 觸發滑動軸滑動變更的最小滑鼠滾輪滾動差值 |
thresholdTime | null | 數字 | null | 觸發滑動軸滑動變更的最小滑鼠滾輪滾動時間差(以毫秒為單位) |
屬性 | ||
---|---|---|
swiper.enabled | 布林值 | 是否啟用滑鼠滾輪控制 |
方法 | ||
swiper.disable() | 停用滑鼠滾輪控制 | |
swiper.enable() | 啟用滑鼠滾輪控制 |
名稱 | 引數 | 說明 |
---|---|---|
scroll | (swiper, event) | 滑鼠滾輪滾動時將觸發事件 |
虛擬幻燈片模組允許在 DOM 中僅保留所需的幻燈片數量。如果您有大量的幻燈片,特別是具有複雜 DOM 樹或圖像的幻燈片時,這在效能和記憶體問題方面非常有用。
slidesPerView: 'auto'
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
addSlidesAfter | 數字 | 0 | 增加活動幻燈片後預先呈現的幻燈片數量 |
addSlidesBefore | 數字 | 0 | 增加活動幻燈片前預先呈現的幻燈片數量 |
cache | 布林值 | true | 啟用呈現的幻燈片 HTML 元素的 DOM 快取。一旦呈現,它們將被儲存到快取中並從快取中重複使用。 |
enabled | 布林值 | false | 是否啟用虛擬幻燈片 |
renderExternal | function(資料) | 用於外部呈現的函式(例如,使用其他程式庫來處理 DOM 操作和狀態,例如 React.js 或 Vue.js)。作為參數,它接受具有以下屬性的
| |
renderExternalUpdate | 布林值 | true | 啟用時(預設值),它會在呼叫 renderExternal 後立即更新 Swiper 版面配置。當與以非同步方式呈現的呈現程式庫一起使用時,可用於停用並手動更新 swiper |
renderSlide | function(slide, index) | 用於呈現幻燈片的函式。作為參數,它接受 | |
slides | T[] | [] | 幻燈片陣列 |
屬性 | ||
---|---|---|
swiper.cache | 物件 | 具有快取的幻燈片 HTML 元素的物件 |
swiper.from | 數字 | 第一個呈現的幻燈片的索引 |
swiper.slides | T[] | 透過 |
swiper.to | 數字 | 最後一個呈現的幻燈片的索引 |
方法 | ||
swiper.appendSlide(slide) | 附加幻燈片。
| |
swiper.prependSlide(slide) | 前置幻燈片。
| |
swiper.removeAllSlides() | 移除所有幻燈片
| |
swiper.removeSlide(slideIndexes) | 移除特定幻燈片或多個幻燈片。
| |
swiper.update(force) | 更新虛擬幻燈片狀態 |
自版本 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,
});
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
getSlideIndex | function(swiper, hash) | 設計用於虛擬幻燈片,當無法透過雜湊值在 DOM 中找到幻燈片時(例如,尚未呈現) | |
replaceState | 布林值 | false | 除了雜湊導覽外,還可以將當前 URL 狀態替換為新的 URL 狀態,而不是將其新增至歷程記錄中 |
watchState | 布林值 | false | 設定為 |
名稱 | 引數 | 說明 |
---|---|---|
hashChange | (swiper) | 視窗雜湊變更時將觸發事件 |
hashSet | (swiper) | 滑動軸更新雜湊時將觸發事件 |
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
enabled | 布林值 | false | 啟用歷程記錄外掛程式。 |
keepQuery | 布林值 | false | 變更瀏覽器 URL 時保留查詢參數。 |
key | 字串 | 'slides' | 幻燈片的 URL 金鑰 |
replaceState | 布林值 | false | 除了雜湊導覽或歷程記錄之外,還可以將目前的 URL 狀態替換為新的 URL 狀態,而不是將其新增到歷程記錄中 |
root | 字串 | '' | 滑動軸頁面根目錄,當您在非根網站頁面上使用 Swiper 歷程記錄模式時,此選項很有用。例如,可以是 |
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
by | 'slide' | 'container' | 'slide' | 定義如何控制另一個滑動軸:逐張幻燈片(與另一個滑動軸的格線相關)或根據所有幻燈片/容器(取決於總滑動軸百分比)。 |
control | 任何 | 在此處傳遞另一個 Swiper 執行個體或 Swiper 執行個體陣列,這些執行個體應由這個 Swiper 控制。也接受 Swiper 元素的 CSS 選擇器字串或 Swiper 元素的 HTMLElement | |
inverse | 布林值 | false | 設定為 |
屬性 | ||
---|---|---|
swiper.control | 任何 | 在此處傳遞另一個 Swiper 執行個體或 Swiper 執行個體陣列,這些執行個體應由這個 Swiper 控制 |
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
containerMessage | null | 字串 | null | 外部滑動軸容器的螢幕閱讀器訊息 |
containerRole | null | 字串 | null | 要在滑動軸容器上設定的 "role" 屬性的值 |
containerRoleDescriptionMessage | null | 字串 | null | 用於描述外部滑動軸容器角色的螢幕閱讀器訊息 |
enabled | 布林值 | true | 啟用 A11y |
firstSlideMessage | 字串 | '這是第一張幻燈片' | 當滑動軸位於第一張幻燈片時,先前按鈕的螢幕閱讀器訊息 |
id | null | 字串 | 數字 | null | 要在滑動軸包裝器上設定的 |
itemRoleDescriptionMessage | null | 字串 | null | 用於描述幻燈片元素角色的螢幕閱讀器訊息 |
lastSlideMessage | 字串 | '這是最後一張幻燈片' | 當 Swiper 處於最後一張投影片時,螢幕閱讀器用於「下一張」按鈕的訊息 |
nextSlideMessage | 字串 | '下一張投影片' | 螢幕閱讀器用於「下一張」按鈕的訊息 |
notificationClass | 字串 | 'swiper-notification' | A11y 通知的 CSS 類別名稱 |
paginationBulletMessage | 字串 | '前往投影片{{index}}' | 螢幕閱讀器用於單個分頁圓點的訊息 |
prevSlideMessage | 字串 | '上一張投影片' | 螢幕閱讀器用於「上一張」按鈕的訊息 |
scrollOnFocus | 布林值 | true | 啟用滾動到已聚焦的投影片 |
slideLabelMessage | 字串 | '{{index}} / {{slidesLength}}' | 螢幕閱讀器描述投影片元素標籤的訊息 |
slideRole | 字串 | 'group' | Swiper 投影片 |
您有兩種方式可以製作 Swiper 的自訂版本。
如果您的專案使用支援 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 建置器,允許您建置自訂的函式庫版本,其中您可以僅包含所需的模組。我們需要以下內容
將 Swiper GitHub 儲存庫 下載並解壓縮到本機資料夾
安裝 Node.js (如果尚未安裝)
現在,我們需要安裝所需的相依性。前往下載並解壓縮的 Swiper 儲存庫所在的資料夾,並在終端機中執行
$ npm install
開啟 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',
],
};
現在,我們已準備好建置 Swiper 的自訂版本
$ npm run build:prod
就這樣。產生的 CSS 和 JS 檔案及其最小化版本將在 dist/
資料夾中可用。
Swiper 已完整輸入,它會匯出 Swiper
和 SwiperOptions
類型
// 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 定義瀏覽器,了解所有類型、選項、屬性和方法。