私はかなりの数のデモをレビューしましたが、CSS3スピンを機能させることができない理由はわかりません。 Chromeの最新安定版を使用しています。
フィドル: http://jsfiddle.net/9Ryvs/1/
div {
margin: 20px;
width: 100px;
height: 100px;
background: #f00;
-webkit-animation-name: spin;
-webkit-animation-duration: 40000ms;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-name: spin;
-moz-animation-duration: 40000ms;
-moz-animation-iteration-count: infinite;
-moz-animation-timing-function: linear;
-ms-animation-name: spin;
-ms-animation-duration: 40000ms;
-ms-animation-iteration-count: infinite;
-ms-animation-timing-function: linear;
-o-transition: rotate(3600deg);
}
<div></div>
CSS3アニメーションを使用するには、実際のアニメーションキーフレーム(にspin
と名前を付けたもの)も定義する必要があります。
詳細については、 https://developer.mozilla.org/en-US/docs/CSS/Tutorials/Using_CSS_animations を参照してください。
アニメーションのタイミングを設定したら、アニメーションの外観を定義する必要があります。これは、
@keyframes
at-ruleを使用して2つ以上のキーフレームを確立することによって行われます。各キーフレームは、アニメーションシーケンス中の特定の時点でのアニメーション要素のレンダリング方法を表します。
Http://jsfiddle.net/gaby/9Ryvs/7/でのデモ
@-moz-keyframes spin {
from { -moz-transform: rotate(0deg); }
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
from { -webkit-transform: rotate(0deg); }
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
キーフレームを指定していません。 ここで動作させました 。
div {
margin: 20px;
width: 100px;
height: 100px;
background: #f00;
-webkit-animation: spin 4s infinite linear;
}
@-webkit-keyframes spin {
0% {-webkit-transform: rotate(0deg);}
100% {-webkit-transform: rotate(360deg);}
}
あなたは実際にこれでたくさんの本当にクールなことをすることができます。 これは私が以前に作ったものです 。
:)
N.B。- prefix-free を使うと、すべてのプレフィックスを書き出す必要がなくなります。
最新のChrome/FFおよびIE11では、-ms/-moz/-webkitプレフィックスは不要です。これは短いコードです(以前の回答に基づく)。
div {
margin: 20px;
width: 100px;
height: 100px;
background: #f00;
/* The animation part: */
animation-name: spin;
animation-duration: 4000ms;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
フォントが素晴らしいグリフィコンを含むHTML。
<span class="fa fa-spinner spin"></span>
CSS
@-moz-keyframes spin {
to { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
to { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
to {transform:rotate(360deg);}
}
.spin {
animation: spin 1000ms linear infinite;
}
回転するには、キーフレームとトランスフォームを使用できます。
div {
margin: 20px;
width: 100px;
height: 100px;
background: #f00;
-webkit-animation-name: spin;
-webkit-animation-duration: 40000ms;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
-moz-animation-name: spin;
-moz-animation-duration: 40000ms;
-moz-animation-iteration-count: infinite;
-moz-animation-timing-function: linear;
-ms-animation-name: spin;
-ms-animation-duration: 40000ms;
-ms-animation-iteration-count: infinite;
-ms-animation-timing-function: linear;
}
@-webkit-keyframes spin {
from {
-webkit-transform:rotate(0deg);
}
to {
-webkit-transform:rotate(360deg);
}
}
完成のために、これは実際にコードを短くするSass/Compassの例です。コンパイルされたCSSは必要な接頭辞などを含みます。
div
margin: 20px
width: 100px
height: 100px
background: #f00
+animation(spin 40000ms infinite linear)
+keyframes(spin)
from
+transform(rotate(0deg))
to
+transform(rotate(360deg))
正しい359度を与える唯一の答え:
@keyframes spin {
from { transform: rotate(0deg); }
to { transform: rotate(359deg); }
}
&.active {
animation: spin 1s linear infinite;
}
回転することを証明できる便利なグラデーションがあります(円の場合)。
background: linear-gradient(to bottom, #000000 0%,#ffffff 100%);
@keyframes spin {
from {transform:rotate(0deg);}
to {transform:rotate(360deg);}
}
これで質問に答えることができます