@view-transition

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

@view-transition CSS @規則用於在跨文件導航時,使當前文件和目標文件進行檢視過渡

要使跨文件檢視過渡生效,導航的當前文件和目標文件也必須在同一源上。

語法

css
@view-transition {
  navigation: auto;
}

描述符

指定此 @規則對文件檢視過渡行為的影響。可能的值有:

  • auto:在參與導航時,文件將進行檢視過渡,前提是導航是同源的,沒有跨源重定向,並且其navigationTypetraversepushreplace。在pushreplace的情況下,導航必須由使用者與頁面內容交互發起,而不是由瀏覽器UI功能發起。

  • none:文件將不進行檢視過渡。

正式語法

@view-transition = 
@view-transition { <declaration-list> }

示例

過渡頁面檢視

以下程式碼片段展示了頁面過渡演示中使用的關鍵概念。該演示使用了跨文件檢視過渡;在網站的兩個頁面之間導航時會發生半秒的過渡。有關完整演示,請參見檢視過渡多頁面應用演示

@view-transition @規則在當前文件和目標文件的 CSS 中指定,以使它們都參與檢視過渡。

css
@view-transition {
  navigation: auto;
}

除了@view-transition @規則,我們還使用@keyframes @規則來定義兩個關鍵幀動畫,並使用animation簡寫屬性將這些關鍵幀動畫應用於我們想要動畫的離開(::view-transition-old())和進入(::view-transition-new())頁面中的元素。

css
/* Create a custom animation */
@keyframes move-out {
  from {
    transform: translateY(0%);
  }

  to {
    transform: translateY(-100%);
  }
}

@keyframes move-in {
  from {
    transform: translateY(100%);
  }

  to {
    transform: translateY(0%);
  }
}

/* Apply the custom animation to the old and new page states */
::view-transition-old(root) {
  animation: 0.4s ease-in both move-out;
}

::view-transition-new(root) {
  animation: 0.4s ease-in both move-in;
}

線上檢視此過渡多頁面應用演示。

規範

規範
CSS 檢視過渡模組級別 2
# view-transition-rule

瀏覽器相容性

另見