089. View Transitions API(最新の画面遷移:ブラウザが魔法をかける、未来のアニメーション)
原理:写真が動画のように繋がる不思議
「前」と「後」をブラウザに任せる
これまでのアニメーション(087. 088.)は、「ここをこう動かして」という指示を私たちが細かくCSSで書く必要がありました。 しかし、最近のブラウザが登場させた「View Transitions API(ビュー・トランジション・エーピーアイ)」は、その常識を根底から覆します。
この機能を使えば、ブラウザが「更新前の画面のスクリーンショット」と「更新後の画面のスクリーンショット」を内部でパッと撮り比べ、その間の変化をまるで動画のモーフィングのように、自動で滑らかに繋いでくれるのです。
HTMXはこの最新機能を、たった一つの設定だけで利用できるようにしてくれました。
実践:次世代の「ヌルヌル動く」ページを体験する
1. 要素の移動を自動化する(hx-syncではない)
例えば、リストを並び替えたとき。古い場所にあった要素が、新しい場所へ「スイーッ」と滑るように移動する。これが、View Transitions APIの凄さです。
<!--
hx-get: 更新
hx-swap: 最後の最後に "transition:true" を書き足すだけ!
-->
<div id="content" hx-get="/api/refresh" hx-swap="innerHTML transition:true">
ここにある要素すべてが、更新時に滑らかに変形・移動します。
</div>
2. ページ遷移をシームレスにする
HTMXの hx-boost(024.解説)と組み合わせることで、通常のWebページ遷移が、まるで一つのモバイルアプリを触っているかのような、途切れない体験に変わります。
3. ステップ・バイ・ステップ解説
- ブラウザの確認: 現時点では Chrome, Edge などの最新ブラウザが主要なサポート対象です。
- 指示の追加:
hx-swapの末尾にtransition:trueを付けます(例:hx-swap="innerHTML transition:true")。 - 魔法の目印(任意): 移動させたい特定の要素にCSSで
view-transition-name: my-element;のような名前を付けておくと、ブラウザがより正確に同一人物だと認識して、綺麗に滑らせてくれます。
比較:CSS Transitions vs View Transitions API
CSS Transitions (088)
- 職人技: 私たちが「どう動くか」を細かく指定する。
- 安定性: どのブラウザでもほぼ動く。
- 用途: ボタンの点滅、小さな要素の出現など。
View Transitions API (今回)
- 魔法: ブラウザが「適当にいい感じ」に繋いでくれる。
- 最先端: まだ一部のブラウザ(Chrome等)でのみ動作(非対応ブラウザでは普通に更新されるだけなので安全)。
- 用途: 画面全体の大掛かりな変化、要素の「場所」が大きく変わる場合。
まとめ:初心者のための「未来」の使いこなし方
View Transitions API は、今のところ「お楽しみ要素」に近いかもしれませんが、近い将来のWebの標準になることは間違いありません。
- まずは
transition:trueを付けてみる: それだけで、何もしなくても画面が優しくクロスフェード(じわっと切り替え)するようになります。 - 非対応ブラウザを気にしない: この機能の素晴らしいところは、対応していないブラウザ(SafariやFirefoxなど)では単に「今まで通りのパッとした更新」になるだけで、サイトが壊れることはないという点です。これを「プログレッシブ・エンハンスメント(段階的向上)」と呼びます。
- 「滑らかな移動」の感動: 商品を「お気に入り」に入れた時、そのアイコンが右上のカートへ飛んでいく……。そんな高度な演出が、驚くほど簡単に作れるようになります。
ブラウザの「目」を信じて、任せる。transition:true という魔法のスイッチを入れて、あなたのWebアプリを、次世代の滑らかさへと解き放ってください。第4章の最後を飾るのは、究極のDOM更新術「モーフィング(090. Morphing)」です。