cssで3 D変形を構築する方法

2145 ワード

Ana Tudorは彼女のCodePenアカウントをクリックするとびっくりします~おしっこの女神です.あなたは思わず「天(wo)はね(cao)」と叫びます.この女の男はキックアスが爆発した.彼女のcssは信じられない視覚効果を作りました.私はこのinfinitely unpacked prismという効果が一番好きです.次の文章では、彼女の驚くべき3 D変形の経験と過程を紹介した.
ie 9とOpera 12以下はCSS 3 D transformsに対応していませんが、サポート情報の詳細についてはcaniuse.co.
cssアニメーションは今とても流行っています.もちろん、簡単な色の変化とサイズの変化だけでなく、3 D変形アニメーションも人気があります.css立体反転は良い例です.cssの変形に関するコードを見つけることができます.もっと重要なのは、プログラマーが何が起こるかを理解することです.3 d変形アニメーションの構築方法を一歩一歩貫いてみましょう.
ドアがドアの枠の中にあるのを見てみましょう.http://jsbin.com/cugoboci/1/
簡単なhtml

为了让门打开,我们添加个class:“door--open”

现在我们讲对这个class 应用3D变形。应用到transform-origin

.door--open {
  transform-origin: 0 0 /*whatever y value you wish*/;
  transform: rotateY(-45deg);
}

効果
あまり頼りにならないように見えますが、透視という特性があります.この問題を解決するために使われています.透視はその名の通り、近大遠小です.cssピボットプロパティperspectiveは、3 d変形の親要素に適用する必要があります.もちろんWebKitカーネルブラウザでしか実現できませんが、火狐ではieはできません.
では、透視スタイルframe--realisticをドアフレームに使用します.

现在我们把perspective应用上 perspective的值越小视觉上离眼睛比较近,让变形的元素显示比较大

.frame--realistic {
  perspective: 20em;
}

効果
今はだいぶよくなったように見えますが、ドアに3 Dのアニメーションを追加したり、ドアのclass door--openをdoor--aniに変えたりすることができます.cssは次のようになります.
.door--ani {
  transform-origin: 0 0;
  animation: doorani 1.3s ease-in-out infinite alternate;
}@keyframes doorani {
  from { transform: rotateY(-43deg); }
  to { transform: rotateY(43deg); }
}

では、3 dアニメーションをドアフレームに配置し、パースビューをcontainerの上に配置します.
効果
今は感じが悪くて、ドアとドアの枠が平面内にあるような気がします.これはフレームtransform-styleのためデフォルトはflatです.preserve-3 dに設定すると3 dビューの効果が残りますが、これはよくわかりません.文章の図文を参照してCSS 3 D Transformを理解してください.
効果
4つの立方体を試してみましょう
効果
動かせ
効果
なに??こんなに簡単で終わったの?騒年は100面ですか?