animation-fill-mode
CSS
property sets how a CSS animation applies styles to its target before and after its execution.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
It is often convenient to use the shorthand property
animation
to set all animation properties at once.
/* Single animation */ animation-fill-mode: none; animation-fill-mode: forwards; animation-fill-mode: backwards; animation-fill-mode: both; /* Multiple animations */ animation-fill-mode: none, backwards; animation-fill-mode: both, forwards, none;
none
The animation will not apply any styles to the target when it's not executing. The element will instead be displayed using any other CSS rules applied to it. This is the default value.
forwards
animation-direction
and
animation-iteration-count
:
animation-direction
|
animation-iteration-count
|
last keyframe encountered |
|---|---|---|
normal
|
even or odd |
100%
or
to
|
reverse
|
even or odd |
0%
or
from
|
alternate
|
even |
0%
or
from
|
alternate
|
odd |
100%
or
to
|
alternate-reverse
|
even |
100%
or
to
|
alternate-reverse
|
odd |
0%
or
from
|
backwards
animation-delay
period. The first relevant keyframe depends on the value of
animation-direction
:
animation-direction
|
first relevant keyframe |
|---|---|
normal
or
alternate
|
0%
or
from
|
reverse
or
alternate-reverse
|
100%
or
to
|
both
The animation will follow the rules for both forwards and backwards, thus extending the animation properties in both directions.
注意
: When you specify multiple comma-separated values on an
animation-*
property, they will be assigned to the animations specified in the
animation-name
property in different ways depending on how many there are. For more information, see
Setting multiple animation property values
.
| 初始值 |
none
|
|---|---|
| 适用于 |
所有元素,
::before
and
::after
pseudo-elements
|
| 继承 | no |
| 计算值 | 如指定 |
| 动画类型 | discrete |
<single-animation-fill-mode>#where
<single-animation-fill-mode> = none | forwards | backwards | both
You can see the effect of
animation-fill-mode
in the following example. It demonstrates how, for an animation that runs for an infinite time, you can cause it to remain in its final state rather than reverting to the original state (which is the default).
<p>Move your mouse over the gray box!</p> <div class="demo"> <div class="growsandstays">This grows and stays big.</div> <div class="grows">This just grows.</div> </div>
.demo {
border-top: 100px solid #ccc;
height: 300px;
}
@keyframes grow {
0% { font-size: 0; }
100% { font-size: 40px; }
}
.demo:hover .grows {
animation-name: grow;
animation-duration: 3s;
}
.demo:hover .growsandstays {
animation-name: grow;
animation-duration: 3s;
animation-fill-mode: forwards;
}
见 CSS animations 了解更多范例。
| 规范 | 状态 | 注释 |
|---|---|---|
|
CSS 动画
The definition of 'animation-fill-mode' in that specification. |
工作草案 | 初始定义。 |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
animation-fill-mode
|
Chrome 完整支持 43 | Edge 完整支持 12 |
Firefox
完整支持
16
|
IE 完整支持 10 |
Opera
完整支持
30
|
Safari 完整支持 9 | WebView Android 完整支持 43 | Chrome Android 完整支持 43 |
Firefox Android
完整支持
16
|
Opera Android
完整支持
30
|
Safari iOS 完整支持 9 | Samsung Internet Android 完整支持 4.0 |
完整支持
用户必须明确启用此特征。
要求使用供应商前缀或不同名称。
AnimationEvent
API