2017-10-11 11 views
1

私はCSSアニメーションとjQueryを使用して、段落を実装していなくてCSSアニメーションを適用する方法。クリックされたときリフレッシュ

このCSSアニメーションが適用され、それが元のテキストを返します。もう一度クリックすると、アニメーションが機能しません。私はそれを更新するためにリフレッシュする必要があります。

私は1つのクリックイベントの後にリフレッシュする必要がないように、このCSSのアニメーションを実装したいです。

不要なコードが省略されます。 これは私がこれまで持っているものです。

$(document).ready(function(){ 
 
    $('#intro_bullet').click(function(){ 
 
    $('#intro span').addClass('animation'); 
 
    }); 
 
});
.animation { 
 
    animation-name: color_change; 
 
    animation-duration: 5s; 
 
    animation-iteration-count: 2; 
 
    animation-direction: alternate; 
 
} 
 

 

 
@-webkit-keyframes color_change { 
 
    from { color: #333386; } 
 
    to { color: white; } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li id="intro_bullet">Intro</li> 
 
</ul> 
 

 
<div id="intro"> 
 
    <span>Paragraph about intro</span> 
 
</div>

答えて

4

あなたが最初のクラスを削除する必要があり、その後、offsetWidthすることができますを使用してハックがありますdivを 'リセット'して、アニメーションを再び実行できるようにします。詳細についてはSee hereをご覧ください。

$(document).ready(function(){ 
 
    $('#intro_bullet').click(function(){ 
 
     $('#intro span').removeClass('animation'); 
 
     void $('#intro span')[0].offsetWidth; 
 
     $('#intro span').addClass('animation'); 
 
    }); 
 
});
.animation { 
 
    animation-name: color_change; 
 
    animation-duration: 5s; 
 
    animation-iteration-count: 2; 
 
    animation-direction: alternate; 
 
} 
 

 

 
@keyframes color_change { 
 
    from { color: yellow;} 
 
    to { color: royalblue;} 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul> 
 
    <li id="intro_title">Intro</li> 
 
    <li id="intro_bullet">Click here</li> 
 
</ul> 
 

 
<div id="intro"> 
 
    <span>Paragraph about intro</span> 
 
</div>

+0

お返事ありがとうございます。私はあなたのおかげでそれを解決しました。私はあなたに「offsetWidth」についてもっと勉強したいと思っています。 offsetWidthとはどういう意味ですか?とにかくありがとう、ありがとうございます:) – hsw4840

+0

正直言って、私はなぜ 'offsetWidth'が必要なのか正確にはわかりませんが、それは私が投稿したリンクを見てください。 offsetWidthの主な目的は、要素の幅をピクセル単位で取得するために使用されます。私の推測では、その要素に対するDOMの再描画が強制されているということです。 – Jonathan

+0

私は理解しています。ありがとう! :) – hsw4840

0

試してみてください。

animation-iteration-count: infinite; 
+0

あなたの答えのためにどうもありがとうございました。私はそれを世話します。 – hsw4840

関連する問題