5

CSS3 の回転アニメーションを使用して 360 度回転するオブジェクトがあります。ただし、コード (以下にリンク) は画像を 360 度回転させてから、同じアニメーションを繰り返します。

私はそれを360度回転させ、90度ごとに一時停止し、無限に回転させたい.

どんな助けでも大歓迎です。

ありがとう

.image {
position: absolute;
top: 50%;
left: 50%;
width: 120px;
height: 120px;
margin:-60px 0 0 -60px;
-webkit-animation:spin 1s ease-in-out infinite;
-moz-animation:spin 1s linear infinite;
animation:spin 1s linear infinite;
}
@-moz-keyframes spin { 100% { -moz-transform: rotate(360deg); } }
@-webkit-keyframes spin { 100% { -webkit-transform: rotate(360deg); } }
@keyframes spin { 100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } }

プロジェクトの JSFiddleは次のとおりです。

4

2 に答える 2

12

キーフレームにポイントを追加する必要があります。

フィドル

@-webkit-keyframes rotate {
  0% { -webkit-transform: rotate(0deg); }
  20% { -webkit-transform: rotate(90deg); }
  25% { -webkit-transform: rotate(90deg); }
  45% { -webkit-transform: rotate(180deg); }
  50% { -webkit-transform: rotate(180deg); }
  70% { -webkit-transform: rotate(270deg); }
  75% { -webkit-transform: rotate(270deg); }
  100% { -webkit-transform: rotate(360deg); }
}

.animation-rotate {
    -webkit-animation-name: rotate; 
    -webkit-animation-duration: 4.5s; 
    -webkit-animation-iteration-count: infinite;
    -webkit-transition-timing-function: linear;
}
于 2013-08-16T14:57:51.930 に答える
1

回転後に停止したい場合は、無限修飾子を削除してください。

http://jsfiddle.net/Ugc5g/30/

.image {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    margin:-60px 0 0 -60px;
    -webkit-animation:spin 4s ease-in-out; // No more infinite
    -moz-animation:spin 4s linear;
    animation:spin 4s linear;
}
@-moz-keyframes spin {
    100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); }
}
@-webkit-keyframes spin {
    100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); }
}
@keyframes spin { 
    100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); } 
}

増分でアニメーションを停止したい場合は、少し難しくなります:

http://jsfiddle.net/Ugc5g/31/

.image {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 120px;
    height: 120px;
    margin:-60px 0 0 -60px;
    -webkit-animation:spin 4s ease-in-out infinite;
    -moz-animation:spin 4s linear infinite;
    animation:spin 4s linear infinite;
}
@-moz-keyframes spin {
    0% { -webkit-transform: rotate(0deg); transform:rotate(0deg); }
    25% { -webkit-transform: rotate(90deg); transform:rotate(90deg); }
    25.5% { -webkit-transform: rotate(90deg); transform:rotate(90deg); }
    50% { -webkit-transform: rotate(180deg); transform:rotate(180deg); }
    50.5% { -webkit-transform: rotate(180deg); transform:rotate(180deg); }
    75% { -webkit-transform: rotate(270deg); transform:rotate(270deg); }
    75.5% { -webkit-transform: rotate(270deg); transform:rotate(270deg); }
    100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); }
}
@-webkit-keyframes spin {
    0% { -webkit-transform: rotate(0deg); transform:rotate(0deg); }
    25% { -webkit-transform: rotate(90deg); transform:rotate(90deg); }
    25.5% { -webkit-transform: rotate(90deg); transform:rotate(90deg); }
    50% { -webkit-transform: rotate(180deg); transform:rotate(180deg); }
    50.5% { -webkit-transform: rotate(180deg); transform:rotate(180deg); }
    75% { -webkit-transform: rotate(270deg); transform:rotate(270deg); }
    75.5% { -webkit-transform: rotate(270deg); transform:rotate(270deg); }
    100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); }
}
@keyframes spin { 
    0% { -webkit-transform: rotate(0deg); transform:rotate(0deg); }
    25% { -webkit-transform: rotate(90deg); transform:rotate(90deg); }
    25.5% { -webkit-transform: rotate(90deg); transform:rotate(90deg); }
    50% { -webkit-transform: rotate(180deg); transform:rotate(180deg); }
    50.5% { -webkit-transform: rotate(180deg); transform:rotate(180deg); }
    75% { -webkit-transform: rotate(270deg); transform:rotate(270deg); }
    75.5% { -webkit-transform: rotate(270deg); transform:rotate(270deg); }
    100% { -webkit-transform: rotate(360deg); transform:rotate(360deg); }
}
于 2013-08-16T14:47:21.667 に答える