通八洲科技

css 元素动画执行太快怎么办_通过 animation duration 控制时长

日期:2026-01-02 00:00 / 作者:P粉602998670
animation-duration 值过小(如0.1s–0.3s)会导致动画一闪而过,因人眼难感知;推荐起步设为0.6s或1s,配合缓动函数可延长总时长,多关键帧下duration为整套动画总耗时,非单段间隔。

animation-duration 值太小导致动画一闪而过

动画执行太快,通常是因为 animation-duration 设置过短(比如 0.1s0.3s),浏览器来不及呈现过渡过程。这个属性直接决定整个动画周期耗时,单位支持 s(秒)和 ms(毫秒),但用 ms 容易误估——300ms 看似长,实际只有 0.3 秒,人眼感知就是“闪”。

多个关键帧下 duration 不等于单段时长

写多段 @keyframes 时,animation-duration 是整套动画的总耗时,不是每段之间的间隔。比如 0% → 50% → 100% 三个节点,设 animation-duration: 2s,那 0%→50% 和 50%→100% 各占约 1 秒(除非用 steps() 或手动分配百分比时间)。

动画快还可能是被其他样式覆盖或重置

即使改了 animation-duration,动画仍很快,大概率是 CSS 层叠或 JS 动态样式覆盖了你的设置。常见干扰源:

@keyframes slideIn {
  0% { transform: translateX(-20px); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}
.box {
  animation-name: slideIn;
  animation-duration: 0.8s; /* 关键:这里改数值 */
  animation-timing-function: ease-out;
}

动画真正难调的不是“怎么变慢”,而是“在哪变慢”——关键动作该卡在哪个百分比、哪段需要缓冲、哪段要干脆利落,这些没法靠拉长 duration 解决。