2013-04-12 20 views
15

背景色のある無限のアニメーションを実行しているリンクがあります。私は、アニメーションを停止し、ホバー上の異なる背景色に移行したいと思います。アニメーションを停止し、ホバー上で遷移を開始します

.startlink{ 
    background-color:#206a9e; 
    color:#fff; 
    border-radius:15px; 
    font-family: 'Myriad Pro'; 
    -webkit-animation:changeColor 3.4s infinite; 
    -webkit-transition:all 0.2s ease-in; 
} 

.startlink:hover{ 
    -webkit-animation-play-state: paused; 
    background-color: #014a2a; 
} 

@-webkit-keyframes changeColor 
{ 
    0% {background:#206a9e;} 
    50% {background:#012c4a;} 
    100% {background:#206a9e;} 
} 

なぜこのコードは機能しませんか?これを行うための別の方法がありますか? (できればJavascriptなし)。

答えて

14

Try -webkit-animation: 0;Demo here0は、animationのデフォルト値、または既存のCSS3アニメーションを無効にするために設定する必要があるものです。

+0

この場合、ホバー上にアニメーションがありません – Novelist

+0

OPはアニメーションを停止し、それを**別の背景色に変えたいと思っています。これは私のテストケースが正確に行っているものです。 – Rishabh

+0

すみません。 0.2秒はあまりにも小さいです:)私はあなたのデモで1秒に設定しようとしました、はい、それはアニメーションを持っています – Novelist

1

これを実現する別の方法が見つかりました。

別のアニメーションキーフレームシーケンスを書き込んで、ホバー上で呼び出します。

.startlink{ 
background-color:#206a9e; 
color:#fff; 
border-radius:15px; 
font-family: 'Myriad Pro'; 
-webkit-animation:changeColor 3.4s infinite; 
-webkit-transition:all 0.2s ease-in; 
} 

.startlink:hover{ 
-webkit-animation:hoverColor infinite; 
} 

@-webkit-keyframes changeColor 
{ 
0% {background:#206a9e;} 
50% {background:#012c4a;} 
100% {background:#206a9e;} 
} 
@-webkit-keyframes hoverColor 
{ 
background: #014a2a; 
} 
4

-webkit-アニメーションプレイ状態: と -webkit-アニメーションプレイ状態を一時停止:

+1

お試しいただきありがとうございますが質問にはお答えしません。ホバー上では、現在のアニメーション状態から他の状態に遷移する必要があります。 – colllin

1

を実行している私は同じ問題を持っていると私が見つけた解決策は以下のとおりです。

あなたが望むアニメーションを作成し、あなたとあなたのそれぞれの要素にそれぞれ異なるクラスを割り当てます。

次に、.mouseover()または.mouseenter() jQueryイベントを使用して、各アニメーションに割り当てたクラスを切り替えます。

これはハンガーメニューに使用するものと似ていますが、ハンドラが異なるだけです。

関連する問題