🎬

View Transitions API

ページ遷移時のスムーズなアニメーション

ページ遷移時のちらつきのないスムーズなアニメーションを実装するには、複雑なJavaScriptとCSSの組み合わせが必要でした。View Transitions APIはdocument.startViewTransition()の呼び出しや、MPAでは@view-transitionルールでブラウザが自動的に遷移アニメーションを処理します。

view-transition-nameで特定の要素を追跡すれば、ページ間移動時に要素がスムーズに位置とサイズを変更する共有要素遷移も実装できます。

適用方法

1

SPAではdocument.startViewTransition(() => updateDOM())を呼び出す

2

MPAではmetaタグで@view-transitionを有効化する

3

共有要素にview-transition-nameを付与する

4

::view-transition擬似要素で遷移アニメーションをカスタマイズする

メリット

  • 既存アプリに最小限のコードでページ遷移効果を追加できる
  • SPAとMPAの両方をサポートしどんなアーキテクチャでも使用可能

デメリット

  • Safariのサポートがまだ完全ではない
  • 複雑な共有要素遷移はレイアウト計算コストが高い場合がある

ユースケース

EC商品一覧から詳細ページへのスムーズな遷移 ダークモード/ライトモード切替時のスムーズな色変換

参考資料