CSS変換は、HTML DOM要素のスタイル特性で定義されています。たとえば、Z軸に沿って45度に沿って要素を回転させるためのマークアップは次のようになります。
#element { transform: rotateZ(45deg); }
HTMLドキュメントの
要素に変換を添付すると、まったく同じように機能します。したがって、ドキュメントのに同じ効果を宣言的に追加するために実行すると、次のようなことができます。body { transform: rotateZ(45deg); }
rotatez(45deg)の適用ドキュメントのボディ要素に変換。
3次元変換の場合、CSS変換仕様は、変換する要素の親に指定できる視点プロパティを定義します。コンテンツの要素を変換するときは、Dom階層にその上にある要素に適用する必要があります。そうすることは簡単です:
html { perspective: 500px; }
に設定
興味深い結果を得るために、ボディ要素の変換オリジンプロパティを操作できます。いくつかの例を見てみましょう:
上記のマークアップは、変換オリジンを使用して回転の原点を要素の底に移動しながら、ボディ要素のxに沿った回転を設定します。事実上、これにより、ドキュメントの内容がこのように画面の「内容」を回転させます。
body { transform-origin: 50% 100%; transform: rotateX(45deg); }
ドキュメントのルート要素上の視点オリジンプロパティを操作して、軸外投影効果を実現することもできます。 のスタイルを次のように変更します
私たちのページは次のようになりました:
html { perspective: 500px; perspective-origin: 90% 50%; }
CSS変換を使用することにより、ページのコンテンツ全体の視覚的な外観を簡単に操作できます。通常のレイアウトとサイジングのルールがまだ適用されるため、ボディ要素(特にパーセンテージ値を使用したり、変換オリジンプロパティに依存しているもの)に変換されると、ページの内容に応じて異なる視覚効果をもたらす可能性があります。 Transform-Originが50%100%に設定された以前のRotatex(45Deg)の例を思い出してください。
以下では、変換が適用される前後の結果を見ることができます。
コンテンツが実際にウィンドウの下部にピボットするのではなく、ビューポートの外側のある時点でどのようにピボットするかに注意してください。これは、CSS変換の予想される動作です。
は正常にレイアウトされ、画面外のどこかにある下端に沿って回転します。また、変換されたコンテンツに対応するために、コンテンツの実際のフットプリントが拡張されていることに気付きます(「後」画像のスクロールバーを見てください)発音)。では、変換を身体要素に適用する際に、任意のサイズのコンテンツをどのように扱うのでしょうか?身体のサイズが特定の量を超えて拡大しないようにするために、すべてのコンテンツをカスタマイズすることは非現実的である可能性があります。代わりに、シンプルなHTML/CSSパターンを使用して、ボディ要素のサイズをブラウザウィンドウのサイズに固定し、ラッパー
#element { transform: rotateZ(45deg); }
以下の図は、ページが垂直にスクロールされたときに何が起こるかを示しており、ドキュメントの
要素に直接(左)要素にrotatey(45deg)変換を適用し、ラッパーパターンを使用して(右)(右):
変換の直接的な適用は、軸外投影のために歪んだ視覚的結果をもたらします(身体要素の「中心」を見ていないため)。ラッパーパターンを使用すると、要素の視点オリジンプロパティ(デフォルトでは50%50%)が常に
要素に関連して正しく中心になり、心地よい視覚効果が得られます。 上記のパターンを利用して、可能な場合はパーセント値でCSS変換をセットアップすることにより、その内容のサイズに関係なく、要素に一貫した方法で影響を与えることができます。 変換からアニメーションへの要素にCSS変換を適用する複雑さを整理したことで、CSSアニメーションは次のステップです。上記の原則に従うことにより、興味深い方法でWebコンテンツを視野に入れる(または削除する)アニメーションを作成できます。
要素に適用されると、このアニメーションは左側で回転させます。ラッパーパターンを使用する要素に適用すると、視覚的な結果がより興味深いものになります。ドキュメントは、実際にはブラウザウィンドウの可視領域の外側からフルビューに回転します。
body { transform: rotateZ(45deg); }
同様に、Webコンテンツを視界から流動的に削除するアニメーションを作成できます。たとえば、回転中にページを遠くに消えたい場合は、次のようなものを使用できます。
#element { transform: rotateZ(45deg); }
視覚的な結果は
です
CSSアニメーションのフルパワーを使用してWebコンテンツ全体に影響を与えることができるため、これらのページ効果を生成するという点では多くの柔軟性があります(CSS変換を使用するだけではありません)。しかし、コンテンツに適用したい効果を構成したら、ページナビゲーションプロセス中にどのようにトリガーするのでしょうか?
アニメーションをボディ要素にアニメーションを追加する最初の直感的な場所は、オンロードJavaScriptイベントです。しかし、判明したように、オンロード火災が実際には手遅れになったときにアニメーションを追加します。このイベントは、実際にページのコンテンツ全体が読み込みが終了したときにトリガーされます(画像やその他の帯域幅集約型リソースを含む)。帯域幅集約型のページでアニメーションをオンロードに添付すると、コンテンツが「通常」に表示され、その後、アニメーションがトリガーをトリガーしてコンテンツを表示します。私たちが目指していた効果ではありません 代わりに、ブラウザがコンテンツのDOM構造の解析を終了したときにトリガーするドンコンテンテントロードのイベントを利用することができます(ただし、リソースがロードが終了する前に潜在的に)。 IEテストドライブDomContentLoadedデモは、これら2つのイベントの違いを示しています。ただし、複雑なWebコンテンツの場合、最新のブラウザは「プログレッシブ」レンダリングを実行することを選択でき、DOMツリー全体がロードされる前にページを表示することができます。これらの状況では、視覚的な結果はオンロードシナリオに似ています。
視界でページコンテンツを遷移するアニメーションをセットアップする最適な場所は、要素の上部にインラインです。これにより、コンテンツがレンダリングされているときにアニメーションが正しく開始されます(およびコンテンツの開始位置は、選択したアニメーションのキーフレームの開始位置になります)。このアプローチの快適な副作用は、アニメーションが実際に、複雑なコンテンツで発生する可能性のあるプログレッシブレンダリング、再レイアウト、またはリソースの読み込みをマスクする可能性があることです。コンテンツを視界から外すアニメーションを設定することも興味深いものです。コンテンツの関心のあるすべての要素(たとえばすべてのタグ)にオンクリックハンドラーを添付し、コールバック関数で関連するアニメーションプロパティ(アニメーション名、アニメーション寿命など)を設定できると仮定することができます。 。ただし、実際にナビゲーションが発生を遅らせない場合、予想される流体の移行が表示されません。 これは、CSSアニメーションの仕様で説明されているアニメーションイベントを利用する良い機会です。特に、AnimationEndイベントを使用して、アニメーションがいつ完了したかを検出してから、ナビゲーションをトリガーすることができます(たとえば、window.location.hrefを設定して)。したがって、OnClickは「remof-from-view」アニメーションをトリガーし、
ページからページのアニメーションを楽しむだけで、各ページの右下隅にある「続行する」リンクを使用して、チュートリアルのページをステップスリートします。
チュートリアルの最後に、これらのアニメーションを独自のWebコンテンツに組み込む方法に関する追加のガイダンスとサンプルコードを提供します。それを包みます
CSS変換とCSSアニメーションは、より豊かで没入型のWebエクスペリエンスを可能にする2つの強力な機能セットです。わずかな労力で、流動的でほとんどアプリのようなナビゲーションエクスペリエンスを提供するWebページ(静的なページでも)を作成できます。 この投稿を読んで楽しんだなら、あなたは学ぶことができるのが大好きです。マスターから新鮮なスキルとテクニックを学ぶ場所。メンバーは、実用的なCSSのようなすべてのSitePointの電子ブックやインタラクティブなオンラインコースに即座にアクセスできます。
フルページのCSSアニメーションに関するよくある質問以上がCSSを使用してフルページアニメーションを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。