我用CSS写了个简单的放大动画,但动画播完后元素又缩回去了,怎么让它停在最后的状态啊?
试过加了animation-fill-mode: forwards,但好像没起作用,是不是哪里写错了?
@keyframes zoomIn {
from { transform: scale(1); }
to { transform: scale(1.5); }
}
.box {
animation: zoomIn 0.5s ease-in-out;
/* 这里加了 forwards 但还是回退了 */
}
看你的代码,forwards 放在注释里了:
这样写 forwards 是不会生效的,得写在 animation 属性里:
这样就能停在 scale(1.5) 的状态了。
如果这样还不行,检查一下有没有其他样式或 JS 覆盖了 transform。实在不行可以试试 animation-fill-mode: both,这个兼容性更好。
forwards这个值,可能是在写的时候漏掉了或者语法没对上。别担心,这个属性确实就是解决这个问题的。最直接的办法就是在
animation的简写属性最后加上forwards。它的意思就是告诉浏览器:动画播完了,别动,就停在最后一帧。你可以试试把代码改成这样:
这样写完,元素放大到 1.5 倍后就会稳稳停在那里,不会缩回去了。如果这样改了还不行,建议检查一下是不是有其他 CSS 规则把这个动画属性给覆盖掉了,不过一般直接加上
forwards就能搞定。