このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

@view-transition

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

@view-transitionCSSアットルールで、文書間のナビゲーションの場合に、移動元及び移動先の文書でビュー遷移を行うように指定するために使用します。

文書間のビュー遷移を機能させるには、ナビゲーションの移動元と移動先の文書が同じオリジンにある必要があります。

構文

css
@view-transition {
  navigation: auto | none;
  types: none | <custom-ident>#;
}

記述子

このアットルールが文書内のビュー遷移の動作に与える効果を指定します。指定可能な値は以下のとおりです。

auto

この文書でビュー遷移が発生するのは、同一オリジン内のナビゲーションで、オリジン間リダイレクトがなく、navigationTypetraversepushreplace のいずれかである場合です。push または replace の場合、ナビゲーションはブラウザーの UI 機能ではなく、ページコンテンツを操作するユーザーによって開始されたものでなければなりません。

none

この文書でビュー遷移は発生しません。

types

現在の文書と出力先の文書に対して、アクティブなビュー遷移に設定するビュー遷移のを指定します。指定可能な値は以下の通りです。

<custom-ident>+

1 つ以上の空白区切りの <custom-ident> 値で、設定する型を表します。

none

設定する型はありません。

形式文法

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

ページビューの遷移

以下のコードスニペットは、ページ遷移のデモで使用される主要な概念を示しています。 このデモでは、文書間のビュー遷移を使用しています。これは、同一サイトの 2 つのページ間を移動する際に発生する 0.5 秒の遷移です。 デモ全体については、複数ページアプリのビュー遷移のデモをご覧ください。

@view-transition アットルールは、ナビゲーションの移動元と移動先の両方の文書内の CSS で指定することで、ビュー遷移が有効になります。

css
@view-transition {
  navigation: auto;
}

@view-transition アットルールに加えて、2 つの @keyframes アニメーションを定義し、animation 一括指定プロパティを使用して、アニメーションさせたい流出側 (::view-transition-old()) および流入側 (::view-transition-new()) ページの要素にそれらのキーフレームアニメーションを適用します。

css
/* 独自アニメーションの作成 */
@keyframes move-out {
  from {
    transform: translateY(0%);
  }

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

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

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

/* 独自アニメーションを新旧のページ状態に適用 */
::view-transition-old(root) {
  animation: 0.4s ease-in both move-out;
}

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

複数ページアプリの遷移のデモをライブで参照してください。

ビュー遷移の型の使用

MPA 遷移型の例ソースコード)では、@view-transition を通じて types を使用する方法を示しています。

css
@view-transition {
  navigation: auto;
  types: slide;
}

参照されている例の詳細な手順については、@view-transition を使用した文書間ビュー遷移の型の使用をご覧ください。

仕様書

Specification
CSS View Transitions Module Level 2
# view-transition-rule

ブラウザーの互換性

関連情報