2016-11-26 16 views
0

私はcssアニメーションで要素の背景色を切り替えるために取り組んでいます。2ステップと遷移なしのCSSアニメーション

このアニメーションは2つのフェーズであり、両方のフェーズ間の滑らかな遷移はありません。

アニメーションの最初の50%、背景色はblue、アニメーションの最後の50%は背景色がgreyとなり、間にトランジションはありません。それを行うための簡単な方法があります場合、私は思ったんだけど

div { 
 
    width: 200px; 
 
    height: 200px; 
 
    animation: bg 4s linear infinite; 
 
} 
 

 
@keyframes bg { 
 
    0% { 
 
    background: blue; 
 
    } 
 
    50% { 
 
    background: blue; 
 
    } 
 
    50.00001% { 
 
    background: grey; 
 
    } 
 
    100% { 
 
    background: grey; 
 
    } 
 
}
<div></div>

はここで完全に動作するアニメーションです。私が探しているのは、と toだけを追加ステップなしで keyframesの中に使用することです。

+0

いずれかのソリューションは、あなたを助けている場合、対応する回答の側に目盛りをクリックして受け入れられたとして、それをマークすることを検討してください。 – Harry

答えて

4

animation-timing-function: steps(1)を使用して以下のスニペットで達成できます。 animation-timing-functionhereと、stepsの値hereの詳細については、MDNで確認できます。

div { 
 
    width: 200px; 
 
    height: 200px; 
 
    animation: bg 4s steps(1) infinite; 
 
} 
 

 
@keyframes bg { 
 
    0% { 
 
    background: blue; 
 
    } 
 
    50% { 
 
    background: grey; 
 
    } 
 
}
<div></div>

注: I起因this answerで議論問題に50%代わりに100%grey色のキーフレームを設定しています。あなたはまた、ショートカット表記を使用することができます

0

div { 
 
    width: 200px; 
 
    height: 200px; 
 
    animation: bg 4s linear infinite; 
 
} 
 

 
@keyframes bg { 
 
    from, 50% { 
 
    background: blue; 
 
    } 
 
    50.00001%, to { 
 
    background: grey; 
 
    } 
 
}
<div></div>

関連する問題