View Transitions APIの実例

View Transitions API:SPAとマルチページの動く実例 | We.Inc

動くView Transitions APIの実例集です。並べ替えできるリストでのstartViewTransition、変形する名前付き要素、ページ間の遷移、タイプ指定、Reactでの使い方、対応状況を解説します。

View Transitions APIの実例

View Transitions APIは、ページの2つの状態の間をアニメーションでつなぎます。シングルページアプリでは、DOMの更新を document.startViewTransition(() => update()) で包みます。同じオリジンのページ間では、両方のページに @view-transition { navigation: auto; } を追加します。要素に一意のview-transition-nameを付けると、ブラウザーがその要素を古い位置から新しい位置へ変形させます。

2種類のビュー遷移

ビュー遷移の解説の多くは、疑似要素のツリーを説明して終わります。このページでは、まずブラウザーで動くデモから始めます。グリッドを並べ替え、カードを詳細表示に開き、名前付きの要素が動く様子を見てください。その後、各パターンのコード、ページ間の設定、未対応ブラウザー向けの代替処理を紹介します。

よくある質問

document.startViewTransitionは何をしますか?

現在のページのスナップショットを撮り、更新コールバックを実行し、古いスナップショットから実際の新しい状態へアニメーションします。戻り値はViewTransitionオブジェクトで、ready、finished、updateCallbackDoneの各プロミスとskipTransition()メソッドを持ちます。

ページ間にビュー遷移を追加するには?

移動元のページと移動先のページの両方のCSSに @view-transition { navigation: auto; } を書きます。ページは同じオリジンである必要があり、デフォルトではクロスフェードになります。対応する要素に両方のページで同じ遷移名を付けると、変形させられます。

ビュー遷移はFirefoxで動きますか?

同一ドキュメントの遷移はFirefox 144から動きます。執筆時点ではドキュメント間の遷移はFirefoxで未対応だったため、そうしたブラウザーではアニメーションなしで普通にページが移動します。

Reactでビュー遷移を使うには?

document.startViewTransitionを呼び出し、react-domのflushSyncの中で状態を更新します。こうすると、ブラウザーが新しいスナップショットを撮る前に、Reactが新しいDOMを同期的に書き込みます。

アニメーションをカスタマイズするには?

疑似要素にスタイルを当てます。::view-transition-old(name) が出ていくスナップショット、::view-transition-new(name) が入ってくるスナップショットで、::view-transition-group(name) がサイズと位置を制御します。ページ全体には名前としてrootを使います。

遷移中に起きていること

要素にうまく名前を付ける

方向ごとのタイプ

同一ドキュメントの遷移

機能検出付きのstartViewTransition

このAPIのないブラウザーではすぐに更新を実行するので、何も壊れません。

サムネイルをヒーロー画像へ変形させる

名前を持てるのは一度に1つの要素だけなので、遷移の直前に、クリックされたサムネイルに名前を設定します。

React

flushSyncを使ったstartViewTransition

flushSyncにより、Reactがコールバック内で新しいDOMを確定させます。

ドキュメント間の遷移

マルチページサイトのページ間をスライドする

遷移に参加させたいすべてのページのスタイルシートにこれを含めます。同じオリジンの場合のみです。

APIリファレンス

View Transitions APIの構成要素

動きを減らす設定が有効なため、即座に切り替わりました。

お使いのブラウザーはビュー遷移に対応していないため、即座に切り替わりました。

ライブデモ

グリッドを並べ替えるか、カードを開いてください。各タイルには固有のview-transition-nameがあるので、ブラウザーが新しい位置へアニメーションさせます。

シャッフル

グリッドに戻る

色のブロックとタイトルは、ここでも同じ名前を保っているため、グリッドから変形しました。

無料で始める · クレジットカード不要

関連: ガイド|Webマーケティングと集客を学ぶ

製品

ご利用いただける方

機能

リソース

会社情報

サイトマップを見る