Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
教學·網頁7 分鐘閱讀·Updated 2026 年 10 月·ExodeUI 團隊

View Transitions API:瀏覽器中的平滑頁面和狀態更改

視圖轉換 API 的用途、同一文件和跨文件轉換如何運作、如何使用 CSS 設計它們的樣式以及如何負責任地使用它們。

直接總結與定義

核心要點

View Transitions API 允許瀏覽器在頁面的兩種狀態之間進行動畫處理。使用更新 DOM 的函數呼叫 document.startViewTransition(),瀏覽器會快照新舊視圖並在它們之間進行動畫處理,您可以使用 ::view-transition 偽元素對其進行樣式設定。它適用於單頁應用程序,並支援瀏覽器跨頁面導航。

它是如何運作的

MDN 將 document.startViewTransition() 描述為啟動相同文件視圖轉換,這在單頁應用程式中很常見。瀏覽器捕獲當前視圖,運行更新,捕獲新視圖,並在它們之間進行動畫處理。預設情況下,這是交叉淡入淡出;CSS 讓您更改它。

舊視圖快照、startViewTransition 內的 DOM 更新以及使用 CSS 進行動畫處理的新視圖
快照、更新、動畫。

同一文檔和跨文檔

同一文件轉換在一個頁面內運行,就像在 SPA 中一樣,Chrome 自 Chrome 111 起就支援它們。跨文檔轉換在多頁面站點中的不同頁面之間進行動畫處理,MDN 指出這在歷史上是不可能的;他們使用 pageswap 和 pagereveal 事件以及 CSS 中的選擇加入。兩者之間的瀏覽器支援有所不同,因此請檢查目前的相容性表。

設定過渡樣式

大多數定制都是簡單的 CSS:

  • 為元素指定一個視圖轉換名稱,以將其與頁面的其餘部分分開進行動畫處理,例如縮圖變成英雄圖像。
  • 定位 ::view-transition-old() 和 ::view-transition-new() 來自訂動畫。
  • 保持持續時間較短且動作有意義。
  • 將自訂動畫包裝在首選減少運動檢查中。

漸進增強

在呼叫 API 之前始終檢查支援情況,如果缺少,請直接更新 DOM。頁面應該在沒有動畫的情況下同樣工作。避免導航上的長過渡,這會讓整個網站感覺更慢。

生產實施片段

互動組件實現
// Same-document transition with a safe fallback
function navigate(updateDom) {
  const reduce = matchMedia('(prefers-reduced-motion: reduce)').matches;
  if (!document.startViewTransition || reduce) {
    updateDom();
    return;
  }
  document.startViewTransition(() => updateDom());
}

/* CSS: animate one element on its own */
.product-image { view-transition-name: product-image; }

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 200ms;
}

要記住的關鍵 Principle

  • startViewTransition() snapshots old and new views and animates between them
  • 存在相同文件 (SPA) 和跨文件(多頁)變體
  • 帶有 view-transition-name 和 ::view-transition 偽元素的樣式
  • 檢查支援並回退到即時更新
  • 保持過渡簡短並尊重減少的動作

常見問題解答

來源

  1. View Transition API — MDN 網路文檔
  2. Smooth transitions with the View Transition API — 面向開發者的Chrome

相關指南和範例

對於視圖內的元件

將頁面轉換與具有自己的狀態和彈簧的互動式組件配對。

打開範例
免費試用