使用css animation的时候经常会想让动画停留在最后一帧,比如鼠标移上的的时候希望往上移动一点,鼠标移开的时候希望再往回移;
可以使用 animation-fill-mode:forwards;进行设置
img{
&:hover{
animation: imgMove 0.3s;
animation-fill-mode:forwards;
}
}
@keyframes imgMove {
from {
transform: translateY(0px);
}
to {
transform: translateY(-5px);
}
}
animation-fill-mode 可以设置CSS动画在执行之前和之后如何将样式应用于其目标
值 | 描述 |
---|---|
none(默认值) | 当动画未执行时,动画将不会将任何样式应用于目标,而是已经赋予给该元素的 CSS 规则来显示该元素 |
forwards | 目标将保留由执行期间遇到的最后一个关键帧计算值 |
backwards | 动画将在应用于目标时立即应用第一个关键帧中定义的值,并在animation-delay期间保留此值 |
both | 动画将遵循forwards和backwards的规则,从而在两个方向上扩展动画属性 |