::view-transition-old()

可用性有限

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

::view-transition-old() CSS 偽元素表示檢視過渡的“舊”檢視狀態——過渡前舊檢視的靜態快照。

在檢視過渡期間,::view-transition-old() 會被包含在相關的偽元素樹中,如檢視過渡偽元素樹中所述,前提是存在要表示的“舊”檢視狀態。它始終是 ::view-transition-image-pair() 的子元素,並且從不包含任何子元素。

它是一個替換元素,因此可以使用 object-fitobject-position 等屬性進行操作。它的固有尺寸等於內容的大小。

使用者代理樣式表中包含以下預設樣式:

css
:root::view-transition-old(*),
:root::view-transition-new(*) {
  position: absolute;
  inset-block-start: 0;
  inline-size: 100%;
  block-size: auto;

  animation-duration: inherit;
  animation-fill-mode: inherit;
  animation-delay: inherit;
}

/* Keyframes for blending when there are 2 images */
@keyframes -ua-mix-blend-mode-plus-lighter {
  from {
    mix-blend-mode: plus-lighter;
  }
  to {
    mix-blend-mode: plus-lighter;
  }
}

@keyframes -ua-view-transition-fade-out {
  to {
    opacity: 0;
  }
}

注意:還設定了額外的檢視過渡樣式來動畫化 ::view-transition-old()。這些樣式在檢視過渡期間動態生成;有關更多詳細資訊,請參閱規範中的設定過渡偽元素更新偽元素樣式部分。

語法

css
::view-transition-old([ <pt-name-selector> <pt-class-selector>? ] | <pt-class-selector>) {
  /* ... */
}

引數

*

通用選擇器(*)選擇頁面上的所有檢視過渡組。

使偽元素匹配使用者代理建立的預設 root 檢視過渡快照組,該組用於包含整個頁面的檢視過渡。此組包含任何未透過 view-transition-name 屬性分配到其自己的特定檢視過渡快照組的元素。

<pt-name-selector>

設定為 view-transition-name 屬性值的 <custom-ident>

<pt-class-selector>

設定為 view-transition-class 屬性值並前面帶有句點(.)的 <custom-ident>

示例

css
figcaption {
  view-transition-name: figure-caption;
}

@keyframes grow-x {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

@keyframes shrink-x {
  from {
    transform: scaleX(1);
  }
  to {
    transform: scaleX(0);
  }
}

::view-transition-old(figure-caption),
::view-transition-new(figure-caption) {
  height: auto;
  right: 0;
  left: auto;
  transform-origin: right center;
}

::view-transition-old(figure-caption) {
  animation: 0.25s linear both shrink-x;
}

::view-transition-new(figure-caption) {
  animation: 0.25s 0.25s linear both grow-x;
}

規範

規範
CSS 檢視過渡模組第 1 級
# ::view-transition-old

瀏覽器相容性

另見