私は3〜4日からこれを試していますが、このアニメーションを作成する方法を理解できません。CSS3のみを使用してこのようなアニメーションを作成できるかどうかさえわかりません。
使用してみanimation-direction:alternate;
ましたが、このフローを特定の角度で取得できず、正方形にアニメーション化できません..しかし、アトムがアニメーション化する方法ではありません。純粋なCSS3を使用してこれを実現する方法はありますか?そうでない場合、jQueryに解決策はありますか?
これをオンラインで見つけました。
この特性を利用しtransform-style: preserve-3d
、電子をx、y、z軸上で回転させて、この3D効果を実現します。
HTML構造
<div id="main">
<div id="atom">
<div class="orbit">
<div class="path">
<div class="electron"></div>
</div>
</div>
<div class="orbit">
<div class="path">
<div class="electron"></div>
</div>
</div>
<div class="orbit">
<div class="path">
<div class="electron"></div>
</div>
</div>
<div class="orbit">
<div class="path">
<div class="electron"></div>
</div>
</div>
<div id="nucleus"></div>
</div>
</div>
CSS
.orbit {
-webkit-transform-style: preserve-3d;
-webkit-transform: rotateX(80deg) rotateY(20deg);
}
#atom .orbit:nth-child(2) {
-webkit-transform: rotateX(80deg) rotateY(70deg)
}
#atom .orbit:nth-child(3) {
-webkit-transform: rotateX(80deg) rotateY(-20deg)
}
#atom .orbit:nth-child(4) {
-webkit-transform: rotateX(80deg) rotateY(-50deg)
}
.path {
-webkit-transform-style: preserve-3d;
-webkit-animation-name: pathRotate;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
}
.electron {
-webkit-animation-name: electronFix;
-webkit-animation-duration: 2s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
}
@-webkit-keyframes pathRotate {
from {
-webkit-transform: rotateZ(0deg);
} to {
-webkit-transform: rotateZ(360deg);
}
}
@-webkit-keyframes electronFix {
from {
-webkit-transform: rotateX(90deg) rotateY(0deg);
} to {
-webkit-transform: rotateX(90deg) rotateY(-360deg);
}
}
CSSで間違いなく可能です。@prashanthの投稿に気付く前に、概念実証として非常に基本的なものをまとめました。彼が見つけたものはすごい涼しいです、しかしここにとにかく私のものがあります...超裸の骨ですが少しいじくり回していて、それはかなりよく見えるでしょう。
これもあなたが求めていたもののように見えると思いますが、Chrome9の時点でSafariのみのアニメーション用であると彼らは言いました
http://bgre.at/demo/CSS3-atom/index.html
互換性のあるブラウザを気にするなら、Jqueryで解決策を見つけるかもしれません。