ホームページ >ウェブフロントエンド >CSSチュートリアル >CSSの3D変換関数
垂直y軸、および
深さz-軸
は正方形をキューブに押し出しません。あなたはまだキューブを作成することができますが、それぞれの側面を作るために6つの要素が必要です。
CSS 3D変換はページ効果に最適ですが、次のMinecraftまたはCall of Dutyを作成できるとは期待しないでください。複雑なモデルは、WebGLなどのテクノロジーを使用してより適切に実装されています。3D変換は、すべての最新のブラウザー(IE10)で十分にサポートされていますが、
任意の要素には、単一の変換プロパティを適用できます。 1つ以上のパラメーターを使用して関数を割り当てることができます。たとえば、
2つ以上の変換が必要な場合、任意の数のスペース分離関数を定義できます。
たとえば、<span><span>.element</span> { </span> <span>transform: function1(parameter1, [...parameterN]); </span><span>} </span>水平面でスケーリングして垂直に変換するには:
<span><span>.element</span> { </span> <span>transform: function1(p1, [...pN]) function2(p1, [...pN]); </span><span>} </span>最後に、変換:なし;既存のすべての変換を削除します。
翻訳(移動)関数
<span><span>.element</span> { </span> <span>transform: scaleX(2) translateY(50px); </span><span>} </span>
翻訳関数を使用して、x軸に沿って要素を水平方向に移動するか、y軸に沿って垂直に移動した可能性があります。
を使用することもできます。
<span>transform: translateX(50px); /* 50px to right */ </span><span>transform: translateY(-100%); /* 100% up */ </span><span>transform: translate(50px, -100%); /* both together */ </span>#box1、#box2および#box3の3つの要素が与えられ、#box2に翻訳(-200px)が適用され、#box3に適用されます。結果はかなり刺激的ではありません:
<span>transform: translateZ(-200px); /* 200px 'into' the screen */ </span>ただし、外側の#sceneコンテナ全体を回転させると、z軸変換がより明確になります:
shorthandantrate3d関数により、3つの軸すべてに沿って要素を移動できます。
<span><span>#scene</span> { </span> <span>transform-style: preserve-3d; </span> <span>transform: rotateX(-10deg) rotateY(-10deg); </span><span>} </span>変換スタイルのプロパティ
デフォルトで(そして常にIE)、変換スタイルはフラットに設定されています。これは、要素の変換されたすべての子供が要素自体の平面にあることを示しています。言い換えれば、内側の要素は任意の変換を適用することができますが、それらは容器の平らな平面に押しつぶされます:
<span>transform: translate3d(50px, 100%, 7em); /* x, y, z axis */ </span>ほとんどの状況では、変換スタイル:preserve-3d;子要素が3D空間に配置されていることを示すために使用する必要があり、コンテナの変換はそれに応じてすべて変換されます。
2D Rotate()関数は実際にZ軸の周りに元素を回転させ、Rotatez()と同一です。たとえば、
rotatex()は、水平軸の周りを回転し、垂直の周りをrotatey()を回転させます。
x - 回転軸を示すベクトルのX座標(0〜1)。
scale3d(x、y、z)関数は、1つのコマンドですべての平面でスケーリングを適用できます。たとえば、
<span><span>.element</span> { </span> <span>transform: function1(parameter1, [...parameterN]); </span><span>} </span>Origin
変換
デフォルトでは、要素が回転し、中心点の周りにスケーリングされます。これは、最大3つのスペース分離値で変換オリジンを設定することで変更できます。1価値の構文:x原点の長さまたは割合。上部と下部が中心xオリジンを備えたy原点を設定する場合、左、中央、右、上または下の単一のキーワードを使用することもできます。
<span><span>.element</span> { </span> <span>transform: function1(p1, [...pN]) function2(p1, [...pN]); </span><span>} </span>二価値構文:xおよびyの起源。長さ、パーセンテージ、またはキーワードを使用できます
3価値構文:x、y、zの起源。 Z値は、PXやEMなどの長さの単位のみである可能性があります。
要素の背面は、xまたはy軸の周りを90以上回転させたが、どちらの方向でも270度未満であると表示されます。背面は事実上鏡像であり、デフォルトでは表示されます。
背面の視界を設定することで背面を隠すことができます:隠されています。 - #box2:上記の例は、視点を適用しません。 Z平面の奥深くに移動した要素は、視聴者からどれだけ離れていても、同じサイズのままです。 Perspectiveプロパティはデフォルトではありませんが、プラスの長さに設定できます。たとえば、
<span><span>.element</span> { </span> <span>transform: function1(parameter1, [...parameterN]); </span><span>} </span>
視点の長さが小さいほど、消失点が近く、3D効果が顕著になります。
<span><span>.element</span> { </span> <span>transform: function1(p1, [...pN]) function2(p1, [...pN]); </span><span>} </span>
を設定することで変更できます。
<span><span>.element</span> { </span> <span>transform: scaleX(2) translateY(50px); </span><span>} </span>
右下の消失点:
<span>transform: translateX(50px); /* 50px to right */ </span><span>transform: translateY(-100%); /* 100% up */ </span><span>transform: translate(50px, -100%); /* both together */ </span>
視点()関数もあります - 試験用、変換:パースペクティブ(200px)。ただし、視点のオリジンを尊重していないようです
すべてが一緒になりました
最後に、スケーリング、回転、および翻訳は、3次元のアフィン変換に16以上の値を必要とする単一のmatrix3d()関数で定義できます。
これはおそらくJavaScriptで使用するのが最適であり、ジオメトリの学位を持つ人が試みます! CSSの場合、変換関数のリストはより読みやすく保守可能である可能性があります。3次元での作業は概念的に難しい場合がありますが、CSS変換はオブジェクト操作へのより簡単なルートです。デモンストレーションページは、プロパティと機能がどのように連携するかを理解するのに役立つインタラクティブなツールを提供します。
バーチャルリアリティ視聴者、一人称シューティングゲーム、イメージギャラリー、スターウォーズスクロールテキストなど、CSS 3D変換の見事な例を見つけることができます。多くは、典型的なプロジェクトで使用する可能性が低い概念実証デモンストレーションです。ただし、いくつかの微妙で徐々に強化された3D効果は、Webページやアプリケーションに別の次元を追加できます。CSS 3D変換関数により、3次元空間の要素を操作できます。基本関数には、rotatex()、rotatey()、rotatez()、translate3d()、translatez()、scale3d()、およびperspective()が含まれます。各関数は、要素にユニークな効果があります。たとえば、rotatex()はx軸の周りの要素を回転させ、翻訳()はz軸に沿って要素を移動します。これらの関数を組み合わせて複雑な3D変換を作成できます。
CSSで複数の3D変換関数を組み合わせることはできますか?これは、変換プロパティ内のスペースで区切られた各関数をリストすることによって行われます。関数は、リストされている順序で適用されます。これにより、回転、翻訳、スケーリングを組み合わせて複雑な3D効果を作成できます。 CSSは、変換が発生する次元です。 2D変換はX軸とY軸の要素に影響しますが、3D変換にはZ軸も含まれ、変換に深さが追加されます。これは、3D変換が3つの次元で要素を回転、移動、および拡張できることを意味し、より没入感と動的効果を生み出します。 CSSのバックフェイス視認性プロパティは、視聴者に面していないときに要素の背面が表示されるかどうかを制御します。このプロパティは、要素が回転し、その背面が表示される3D変換で特に役立ちます。プロパティには、背面を示す「可視」とそれを隠す「隠された」という2つの値が必要です。 🎜> CSS 3D変換の変換オリジン特性により、変換の原点を指定できます。デフォルトでは、変換は要素の中心から発生します。ただし、これを変換オリジンプロパティを使用して要素内の任意のポイントに変更できます。このプロパティは、x、y、およびオプションでz軸を表す2つまたは3つの値を取得します。
はい、CSS遷移またはアニメーションを使用してCSS 3D変換をアニメーション化できます。これにより、ユーザーエクスペリエンスを向上させるスムーズで段階的な変換を作成できます。それぞれのCSSプロパティを使用して、アニメーションの期間、タイミング関数、および遅延を制御できます。ただし、一部の古いバージョンはすべての機能を完全にサポートしていない場合があるため、各機能の特定のブラウザサポートを確認することをお勧めします。 CSS 3D変換の現在のブラウザサポートを確認するために使用できますか? rotatey()またはrotatex()関数を遷移と組み合わせることにより、CSS 3D変換を使用して作成されます。回転関数は、yまたはx軸の周りに要素を反転させ、遷移はフリッピングアニメーションを作成します。遷移期間と遷移 - チミング機能プロパティを使用してフリップの速度とタイミングを制御できます。 )CSS 3D変換の関数により、16の値を含む4×4変換マトリックスを指定できます。この関数は任意の3D変換を表すことができ、複雑な3D効果を作成するための強力なツールになります。ただし、マトリックス数学を深く理解する必要があるため、使用するのは非常に複雑です。
以上がCSSの3D変換関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。