率直に言って、View Transition APIは私にとって少し困難です。多くのチュートリアルには、2つのページ間の変換をアニメーション化する方法に関する印象的なデモンストレーションを示しています。これは通常、最も簡単な例から始まります。
@view-transition { navigation: auto; }
ジムのウェブサイトでどのように機能するかを見ることができます:
これは、新しいことを試してみたいと思っている完璧な「スナック」実験です。両方のページを表示するために使用される同じ
コードスニペットから始まります。ここから、それらをそれぞれ「新しい」ページと「古い」ページと考えることができます。 @view-transition
これはブログに最適なエクササイズですよね?最初に、コンバージョンに参加したい要素、この場合は「古い」ページの記事のタイトルと「新しい」ページの記事タイトルに
を設定します。 view-transition-name
したがって、タグが次の場合:
…CSSで同じ
<h1>Notes</h1> <a href="https://www.php.cn/link/ddabb258dc2a7d5b5a7204fa68fe522f"></a>
view-transition-name
.post-title { view-transition-name: post-title; } .post-link { view-transition-name: post-title; }
ページにこれら2つの要素のみがある場合、これは適切に機能します。ただし、記事のリンクのリストがあり、そのすべてに独自のユニークな
が必要です。それは、ジムが彼の仕事にいくつかの困難を抱えている場所です。なぜなら、新しいブログ投稿を公開することに関してこれをどのように正確に行うのか? CSSを編集して、新しいコンテンツを投稿するたびに新しい変換名を作成する必要がありますか?いいえ、より良い方法がなければなりません。@media not (prefers-reduced-motion: reduce) { .post-title { view-transition-name: post-title; } .post-link { view-transition-name: post-title; } }
そうです。または、少なくとも将来的には。まだ標準ではありません。実際、Bramusは最近、これをview-transition-name
関数に関するChromeの研究について議論しながらこれを書きました。これは、宣言で一連の一意の識別子を生成できるようになります。この将来のCSSを見てください:
attr()
素晴らしい!今すぐ使いたい! Chromeがそれを開発するのを待つだけでなく、他のブラウザがそれを採用して実装する必要があるのは残念です。現時点では、最良の方法は、テンプレートでプログラミングロジックを直接使用することです。私のウェブサイトはWordPressで実行されているため、PHPにアクセスして、両方の要素に
.card[id] { view-transition-name: attr(id type(<custom-ident>), none); /* card-1, card-2, card-3, … */ view-transition-class: card; } <div> <div></div> <div></div> <div></div> <div></div> </div></custom-ident>
記事のタイトルは、個々のブログ投稿のテンプレートにあります。 WordPress Jargonでは、それがsingle.php
ファイルです。
@view-transition { navigation: auto; }
記事リンクは、記事アーカイブのテンプレートにあります。 WordPressでは、これは通常archive.php
:
<h1>Notes</h1> <a href="https://www.php.cn/link/ddabb258dc2a7d5b5a7204fa68fe522f"></a>
そこで何が起こったのか見てみましょうか? view-transition-name
属性は、PHPを使用してWordPressの記事の割り当てられたIDに基づいて名前を生成する2つの変換要素に直接設定されます。別の方法は、テンプレートに<style></style>
タグを追加して、そこにロジックを配置することです。どちらの方法も、将来達成できるものと比較して同様に不器用ですので、好きなものを選択してください。 attr()
を共有し、view-transition-name
に参加しました。これらの2つの要素では、変換が機能します!デフォルトの変換はすべての重い持ち上げを行うため、@view-transition
(ただし、できます)を定義する必要さえありません。 @keyframes
JavaScriptは、入力する前に変換が実行されるようにラジオボタンのデフォルトのクリック動作をブロックするために必要であることに注意してください。
以上がつま先は視聴遷移に浸しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。