View Transitions API 導入ガイド

Filed under: css,View Transitions API — kdcs @ 26年2月22日 日曜日

View Transitions APIの使い方

headのmetaタグに以下を追加する

<meta name="view-transition" content="same-origin">

common.cssに以下を追加

@view-transition {
  navigation: auto;
}

::view-transition-old(root) と ::view-transition-new(root) を使用して、transitionの設定を行う
(root)はページ全体のtransitionの場合に記述する
要素個別に設定する場合は()内はユニークな名前を付けて運用する

例はフェードズームアウトからのフェードズームイン

/* フェード+ズーム */
@keyframes zoom-fade-in {
  from { opacity: 0; transform: scale(0.90); }
  to   { opacity: 1; transform: scale(1); }
}

@keyframes zoom-fade-out {
  from { opacity: 1; transform: scale(1); }
  to   { opacity: 0; transform: scale(1.10); }
}

::view-transition-new(root) {
  animation: zoom-fade-in 0.5s ease;
}

::view-transition-old(root) {
  animation: zoom-fade-out 0.4s ease;
}

WordPress の「動的に生成される一覧ページ」と「個別ページ」で View Transitions API 用の固有クラス(または view-transition-name)を自動付与する方法

一覧の画像のview-transition-nameに投稿IDを付与する方法

<?php while ( have_posts() ) : the_post(); ?>
  <?php $id = get_the_ID(); ?>

  <a href="<?php the_permalink(); ?>">
    <img 
      src="<?php echo get_the_post_thumbnail_url(); ?>"
      class="product-img"
      view-transition-name="product-<?php echo $id; ?>"
    >
  </a>

<?php endwhile; ?>

個別ページで画像のview-transition-nameに投稿IDを付与する方法

<?php $id = get_the_ID(); ?>

<img 
  src="<?php echo get_the_post_thumbnail_url(); ?>"
  class="product-img"
  view-transition-name="product-<?php echo $id; ?>"
>

View Transitions APIのためにクラスを動的に付ける必要はなく、必要なのは view-transition-name のユニーク性だけなのでクラスを動的にする必要性は低い。

サイト内検索

カテゴリー

最近の投稿

« |View Transitions API 導入ガイド| »
↑上に戻る