🎄🎅 節慶特賣:最高可享 5 折優惠,適用於 UI Initiative, Swiper Studio t0ggles 🎅🎄

Swiper v11 - 回歸基礎

2023 年 10 月 24 日

我們非常興奮地推出最新更新:Swiper v11。但這不只是一般的更新。透過 v11,我們邁出重要的一步 — 我們要「回歸基礎」。

觸控事件

為了不斷努力使 Swiper 成為行動觸控滑塊的首選函式庫,我們嘗試了各種方法、實驗了各種技術,並且一直致力於為開發人員和終端使用者提供最佳體驗。我們採取的其中一個方向是在 Swiper v9 中轉向指標事件,認為這是統一處理觸控和滑鼠事件的最佳方案。

然而,我們注意到,雖然指標事件無疑具有革命性,但在某些邊緣情況下,它們並不能始終提供我們期望的流暢觸控體驗。來自社群的回饋,加上我們嚴格的測試,突顯了一些觸控互動的細微差別和限制。

鑑於我們對最佳使用者體驗的承諾,我們決定在 v11 中重新引入對觸控事件的支援(在支援的情況下)。透過「回歸基礎」,我們確保那些邊緣情況,那些需要讓觸控感覺恰到好處的微小時刻,都能得到完美的處理。

至少它可以修復並改進以下情況

  • edgeSwipeDetectiontouchReleaseOnEdges 參數現在在支援觸控事件的裝置上(iOS/Android)正常運作
  • 改進了頁面滾動偵測和預防

循環模式

v11 中的循環模式已得到大幅改進

  • 新增了對具有 grid.rows 的多行佈局的支援
  • 移除了 loopedSlides 參數
  • 新增了 loopAdditionalSlides 參數,取代定義「循環」(重新排列)的額外幻燈片
  • 新增了 loopAddBlankSlides 參數,它會自動為 slidesPerGroupgrid.rows 新增空白幻燈片
  • 對幻燈片數量的要求放寬了
    • 最小幻燈片數量必須 >= slidesPerView + slidesPerGroup
    • 幻燈片數量應為 slidesPerGroup 的偶數(或使用 loopAddBlankSlides 參數)
    • 幻燈片數量應為 grid.rows 的偶數(或使用 loopAddBlankSlides 參數)

例如,如果我們有 slidesPerView: 3,在 v10 中,我們至少需要 6 張幻燈片才能使用循環模式。在 v11 中,我們現在只需要 4 張幻燈片。

元素事件前綴

Swiper Element 使用與 Swiper 類別事件相同的事件名稱發出原生 DOM 事件。如果協力廠商函式庫使用類似的原生 DOM 事件,例如 touchstarttouchmove 等,這會導致問題。因此,在 v11 中,所有 Swiper Element 事件現在都有一個 swiper 前綴(可在 eventsPrefix 參數中設定)。

現在可以如下使用

<swiper-container> ... </swiper-container>
<script>
  const swiperEl = document.querySelector('swiper-container');

  // listen for `slideChange` event
  swiperEl.addEventListener('swiperslidechange', onSlideChange);
</script>

溢出隱藏

在 Swiper v10 中,容器的 overflow 屬性預設為 clip。事實證明,並非所有瀏覽器都正確支援此屬性,因此在 v11 中,我們將預設 Swiper 容器樣式還原為 overflow: hidden

接下來是什麼?

以上是對大多數重大變更和新功能的概述。

有關所有變更列表,請參閱完整的 v11 變更日誌

建議查看v11 遷移指南

附註

與往常一樣,如果您喜歡 Swiper,請透過捐款或承諾來支持專案

並查看我們的進階專案

您的支持對我們意義重大!