ホームページ ウェブフロントエンド CSSチュートリアル CSS3 のトランスフォーム、トランジション、アニメーション プロパティの違いの詳細な例

CSS3 のトランスフォーム、トランジション、アニメーション プロパティの違いの詳細な例

May 30, 2017 pm 01:49 PM
animation css3 transform transition

最近、プロジェクトで CSS3 のアニメーション プロパティを使用しました。しばしば混乱しやすい。そこで、困っている友達が参考にして学べるように、インターネットの情報を調べてまとめてみました。

Transform
一部のテストケースでは、transform 属性がデモンストレーションされるたびに、アニメーション化されているように見えます。このため、直観的な思考を持つ少数の人は、transform アトリビュートがアニメーション アトリビュートであると考えます。それに対して、transform 属性は静的属性であり、スタイルに書き込むと、変更処理を行わずにその効果が直接表示されます。トランスフォームの主な目的は、要素の特別な変形を行うことです。簡単に言うと、これは CSS グラフィック変形ツールです。

グラフィック変形の基本条件のうち原点設定については、CSSでtransform-originを使用して定義します。この定義の原点は、CSS の影響を受ける要素の左上隅を 0,0 として計算する必要があります。他の属性はこの属性に基づいて計算されます。

グラフィックの変化パターンについては、CSS3標準のtransform-styleで定義されています。デフォルトはフラットで、単純な効果が表示されます。そして、preserve-3d は空間を 3D モードでレンダリングします。普通に考えれば、preserve-3dだけあればいいのですが、「preserve-3dをオンにするとGPUアクセラレーションが使われる」という噂から判断すると、この属性はシステム消費量を減らすために使われるのかもしれません。結局のところ、2dよりも3dの方が優れています。 . これには、もう 1 つの次元の計算が必要です。

3D モードを使用する必要がある場合は、まずスタイルを 3D として指定し、親要素に Perspective と Perspective-origin を追加して視点の点を指定する必要があります。

要素のスタイルを変更するためにデザイナーが使用する特定の属性は次のとおりです:

1. translation3d(x,y,z) は、ページの 3 つの軸上の要素の位置を制御するために使用されます
2 、rotate(deg; ) 要素の回転角度を制御するために使用されます。
3. skew[x,y](deg) この属性は、傾きを作成するために使用されます。これは、作成時に必要な属性として使用されることをご存知でしょう。 2D の 3D パースペクティブ
4.scale3d(x,y,z) はズームインとズームアウトに使用され、属性は比率です
5.matrix3d、css マトリックス。この行列属性により、上記の属性値はすべて網羅されていますが、個人的には可読性が非常に悪いと感じており(数値と単位ばかりで、覚えるのが少し曖昧です)、現時点では推奨する理由がありません。その使用法。

一般に、CSSのtransformのプロパティと、動的および静的な観点からは、元々使用されていたleft、right、top、bottomのプロパティに違いはありません。したがって、transformを使用する場合は、このタイプの静的プロパティに分類する必要があります。変形を配置するためのプロパティ。

Transition
Transition プロパティは、非常にシンプルで使いやすい単純なアニメーション プロパティです。一般的に Web ページの単純な特殊効果に使用されるアニメーションの簡易版と言えます。たとえば、次の 2 つのスタイルがあります:

コードは次のとおりです:

.position{
    left:100px;
    top:100px;
}
.animate{
    -webkit-transition:left 0.5s ease-out;
    left:500px;
    top:500px;
}
ログイン後にコピー

animate の遷移属性は、左の属性が変更されると、アニメーション効果を実行します (左の属性の変更のみに基づいて、他の属性は実行されません)。アニメーションの変更に追加されます);

まず第一に、要素の CSS は位置です。 animate を cssList に追加するか、position を animate に置き換えると、要素の属性が変更され、指定された属性が変更される前の値が開始値となり、変更後の属性が終了値になります。アニメーション効果が実行されます。これは単純な 2 点変更プロセスであり、アニメーション属性の複雑さを大幅に簡素化します。

同時に、トランジションアニメーション中に属性値に新たな変更があった場合、現在のアニメーションの実行は中断され、中断時の属性値が開始値として新しいアニメーションに提供されます。新しいアニメーション効果を計算します。

CSSを書く際、変化する属性はtransformだけなので、transition属性にresponse属性をallと指定し、要素の全属性(アニメーション可能な属性)の変化アニメーションに応答して実行することができます。

Animation
公式の紹介文で紹介されているこの属性は、transition 属性の拡張です。しかし、この単純な導入には、キーフレームという単純ではないものが含まれています。

Flash アニメーションを作成したことがある人なら、Flash にはタイムラインとキーフレームという 2 つの基本的な武器があることをご存知でしょう。 CSS キーフレームの出現により、Flash の世界にこれら 2 つの属性のコレクションが提供されます。キーフレームの簡単な例を見てください:

コードは次のとおりです:

@keyframes 'wobble'{
  0%{
   left:100px
}
   30%{
   left:300px;
}
  100%{
   left:500px;
}
}
.animate{
 left:100px;
   -webkit-animation:wobble 0.5s ease-out;
   -webkit-animation-fill-mode:backwards;
}
ログイン後にコピー


上面这个代码展示了一个keyframes 'wobble',其中 0% 代表在变化中不同时间点的属性值,你可以较精确的控制动画变化中任何一个时间点的属性效果。而animation则根据这个keyframes提供的属性变化方式去计算元素动画当中的属性。与 transition 不同的是,keyframes提供更多的控制,尤其是时间轴的控制,这点让css animation更加强大,使得flash的部分动画效果可以由css直接控制完成,而这一切,仅仅只需要几行代码,也因此诞生了大量(比起flash来说算是大量了)基于css的animation tools,用来取代flash的动画部分。关于动画工具,可以参考Web standards-based Animation Tools.

另外在animation属性里面还有一个最重要的就是:animation-fill-mode,这个属性标示是以(from/0%)指定的样式 还是以(to/100%)指定的样式为动画完成之后的样式。这个很方便我们控制动画的结尾样式,保证动画的整体连贯。

以上がCSS3 のトランスフォーム、トランジション、アニメーション プロパティの違いの詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

純粋な CSS3 で波の効果を実現するにはどうすればよいですか? (コード例) 純粋な CSS3 で波の効果を実現するにはどうすればよいですか? (コード例) Jun 28, 2022 pm 01:39 PM

純粋な CSS3 で波の効果を実現するにはどうすればよいですか?この記事ではSVGとCSSアニメーションを使って波のエフェクトを作成する方法をご紹介しますので、お役に立てれば幸いです。

Windows 11 でアニメーション効果を高速化する方法: 2 つの方法を説明 Windows 11 でアニメーション効果を高速化する方法: 2 つの方法を説明 Apr 24, 2023 pm 04:55 PM

Microsoft が Windows 11 を発表したとき、多くの変化がもたらされました。変更点の 1 つは、ユーザー インターフェイスのアニメーションの数が増加したことです。一部のユーザーは表示方法を変更したいと考えており、その方法を見つける必要があります。アニメーションがあると、より快適でユーザーフレンドリーな印象になります。アニメーションは視覚効果を使用して、コンピュータをより魅力的に見せ、応答性を高めます。それらの中には、数秒または数分後にスライド メニューが表示されるものもあります。コンピュータには、PC のパフォーマンスに影響を与え、速度を低下させ、作業を妨げる可能性のあるアニメーションが数多くあります。この場合、アニメーションをオフにする必要があります。この記事では、PC 上でアニメーションの速度を向上させるいくつかの方法を紹介します。レジストリ エディターまたは実行するカスタム ファイルを使用して変更を適用できます。 Windows 11 でアニメーションを改善する方法

CSS ヒント: トランジションを使用してホバー状態を保持する CSS ヒント: トランジションを使用してホバー状態を保持する Sep 27, 2022 pm 02:01 PM

ホバー状態を保存するにはどうすればよいですか?以下の記事ではJavaScriptを使わずにホバー状態を保持する方法を紹介していますので、ご参考になれば幸いです。

CSS を使用して要素の背景の回転アニメーション効果を実現する方法 CSS を使用して要素の背景の回転アニメーション効果を実現する方法 Nov 21, 2023 am 09:05 AM

CSS を使用して要素の回転背景画像アニメーション効果を実装する方法 背景画像アニメーション効果は、Web ページの視覚的な魅力とユーザー エクスペリエンスを向上させることができます。この記事では、CSS を使用して要素の背景の回転アニメーション効果を実現する方法を紹介し、具体的なコード例を示します。まず、背景画像を用意します。太陽や扇風機など、好きな画像を使用できます。画像を「bg.png」という名前で保存します。次に、HTML ファイルを作成し、ファイルに div 要素を追加して、次のように設定します。

CSSを上手に使って色々な変わった形のボタンを実現(コード付き) CSSを上手に使って色々な変わった形のボタンを実現(コード付き) Jul 19, 2022 am 11:28 AM

この記事では、頻繁に登場する様々な奇妙な形のボタンをCSSを使って簡単に実現する方法を紹介しますので、ぜひ参考にしてください。

スペースを取らずにCSS内の要素を非表示にする方法 スペースを取らずにCSS内の要素を非表示にする方法 Jun 01, 2022 pm 07:15 PM

2 つの方法: 1. display 属性を使用して、要素に「display:none;」スタイルを追加するだけです。 2. Position 属性と top 属性を使用して、要素の絶対位置を設定し、要素を非表示にします。要素に「position:absolute;top:-9999px;」スタイルを追加するだけです。

CSS3でレースボーダーを実装する方法 CSS3でレースボーダーを実装する方法 Sep 16, 2022 pm 07:11 PM

CSS では、border-image 属性を使用してレースの境界線を実現できます。 border-image 属性では、画像を使用して境界線を作成できます。つまり、境界線に背景画像を追加できます。背景画像をレース スタイルとして指定するだけで済みます。構文「border-image: url (画像パス) は、内側への画像境界線の幅。開始を繰り返すかどうか;"。

CSS3でマウスクリックで画像を拡大する方法 CSS3でマウスクリックで画像を拡大する方法 Apr 25, 2022 pm 04:52 PM

実装方法: 1. ":active" セレクターを使用して、画像上のマウス クリックの状態を選択します; 2. 変換属性とscale() 関数を使用して、画像の拡大効果を実現します。構文 "img:active {transform : スケール(x 軸倍率、y 軸倍率);}"。

See all articles