ページ内をなめらかに切り替える
View Transitions
一覧から詳細へ、同じ要素がつながったまま動く。切り替えの「間」をブラウザが作ってくれる。
AIへの頼み方
一覧のサムネイルを押したら、その画像がそのまま詳細ページの大きな画像に繋がって動くようにしてください。View Transitions API を使い、繋ぎたい要素に同じ view-transition-name を付けてください。未対応ブラウザでは即座に切り替わるフォールバックも入れてください。
動くデモ
この項目のデモは自動では動きません。操作して確かめてください。
全画面で見る ↗最小コード
<!-- 一覧と詳細で、繋ぎたい要素に同じ名前をつける -->
<img class="thumb" style="view-transition-name: pic-a" src="...">
<script>
// 未対応ブラウザでも壊れないように包む
function transition(update) {
if (document.startViewTransition) document.startViewTransition(update);
else update(); // 一瞬で切り替わるだけ
}
// 画面を書き換える処理を、そのまま渡す
transition(() => {
listView.hidden = true;
detailView.hidden = false;
detailImage.style.viewTransitionName = 'pic-a'; // 同じ名前で繋がる
});
</script>
<style>
/* 動きの本体はブラウザが作る。CSS では速さと曲線だけ調整する */
::view-transition-group(pic-a) {
animation-duration: .42s;
animation-timing-function: cubic-bezier(.22, .9, .3, 1);
}
@media (prefers-reduced-motion: reduce) {
::view-transition-group(*) { animation-duration: 1ms !important }
}
</style> 対応状況
新顔 2026年08月時点で確認
Baseline newly available(2025-10-14・Firefox 144 で全エンジン対応)。未対応環境では一瞬で切り替わるだけで壊れない。
未対応でも即座に切り替わるだけなので、実案件で使える。
対応状況は自動更新していません。確認日より後の変化はこのページに反映されていない場合があります。
使いどころ/避けどころ
一覧から詳細へ移るときに向く。写真つきのカードをタップして拡大表示にする、商品一覧から商品ページへ進む、といった同じものを別の見え方で見せる場面で効く。切り替えの前後で「これは同じものだ」と伝わるので、迷子になりにくい。
いちばんの値打ちは、動きを自分で書かなくていいこと。繋ぎたい要素に同じ名前を付けるだけで、位置とサイズの差をブラウザが埋めてくれる。CSS で書くのは速さと曲線の調整だけになる。
避けたいのは3つ。
関係のないもの同士を繋ぐこと。見た目が動くぶん、繋がりのないページ間で使うと「何が起きたのか」がかえって分からなくなる。
同じ名前を同時に2か所へ付けること。画面上に同じ名前の要素が2つあると動きが止まる。開いたら元の要素から名前を外す、という後始末が要る。
長くすること。0.3秒から0.5秒に収める。切り替えは移動の手段であって、見せ場ではない。
動きを減らす設定の人には、時間をほぼゼロにして即座に切り替える。この機能は「無効にする」よりも「速くする」ほうが素直に書ける。