animation-fill-mode:アニメーションが再生されていない時にどのような状態で待機するかを指定する

初期値 none
適用対象 全ての要素、疑似要素
継承 しない
アニメーション 離散値
対応ブラウザ caniuseで確認

animation-fill-modeプロパティの説明

animation-fill-modeは、CSSで作成したアニメーションの再生開始前や再生終了後の「アニメーションが再生されていない時」にどのような状態で待機するかを指定します。この値には、あらかじめ用意されたキーワードが入ります。

アニメーション関連のプロパティを一括で制御する場合は、animationを使用して下さい。

animation-fill-modeに指定できる値

none
アニメーションが再生されていない時は、それに関するスタイルを適用しません。要素はアニメーション以外のスタイルを反映させた状態で表示されます。これが初期値です。
forwards
アニメーションは、再生した後に最後のキーフレームの状態を保持します。最後のキーフレームは、animation-directionanimation-iteration-countの値によって変わります。
backwards
アニメーションは、animation-directionの値に従い最初のキーフレームとして相応しいものを適用し、animation-delayで指定された時間これを保持します。
both
アニメーションは、forwardsbackwardsの両方の指定に従います。これにより、最初と最後の待機状態を制御します。

animation-directionの使い方とサンプル

animation-directionプロパティの構文は以下の通りです。

CSS
/* キーワード値 */
animation-fill-mode: none;
animation-fill-mode: forwards;
animation-fill-mode: backwards;
animation-fill-mode: both;

/* 複数の値を指定 */
animation-fill-mode: none, backwards;
animation-fill-mode: both, forwards, none;

/* グローバル値 */
animation-fill-mode: inherit;
animation-fill-mode: initial;
animation-fill-mode: revert;
animation-fill-mode: unset;

animation-fill-modeの実例

それでは簡単な例を見てみましょう。同じ内容のアニメーションに対して別の待機状態を指定した場合は、以下のような挙動となります。

CSS
.samp_box > div {
	margin-top: 10px;
	width: 9em;
	background: #ccc;
	text-align: center;
	animation-name: as_move;
	animation-duration: 5s;
	animation-timing-function: steps(5);
	animation-delay: 2s;
	animation-iteration-count: 1;
}
@keyframes as_move {
	0% { margin-left: 0%;}
	100% { margin-left: 80%;}
}
#afm_1 {
	animation-fill-mode: none;
}
#afm_2 {
	animation-fill-mode: forwards;
}
#afm_3 {
	animation-fill-mode: backwards;
}
#afm_4 {
	animation-fill-mode: both;
}
HTML
<div class="samp_box">
	<div id="afm_1">none</div>
	<div id="afm_2">forwards</div>
	<div id="afm_3">backwards</div>
	<div id="afm_4">both</div>
</div>
表示確認

animation-fill-modeに関連するCSSプロパティ

アニメーション
animation アニメーションに関する指定をまとめて行う
animation-name アニメーションの名前を定義する
animation-duration アニメーションの再生一回分の時間の長さを指定する
animation-timing-function アニメーションの再生タイミングに変化を付ける
animation-delay アニメーションが開始するタイミングを指定する
animation-iteration-count アニメーションの繰り返し回数を指定する
animation-direction アニメーションの再生方向を指定する
animation-fill-mode アニメーションが再生されていない時にどのような状態で待機するかを指定する
animation-play-state アニメーションを再生させるか一時停止させるか指定する