You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何@keyframes使用百分比时.car1无动效?仅from&to模式生效

CSS动画百分比关键帧失效问题解析

嘿,我来帮你拆解这个问题!

首先得明确一点:from和to其实就是0%和100%的语法糖,理论上两者的效果完全一致。那为什么你把.car1的关键帧改成百分比就失效了?大概率是写百分比时犯了一些容易忽略的语法错误,我给你列几个常见的坑:

  • 百分比符号和数值之间加了空格:比如写成0 %而不是0%,这会直接导致浏览器无法正确解析关键帧规则
  • 属性拼写错误:比如把transform写成transfrom,或者translateX拼错,动画自然不会生效
  • 关键帧大括号未正确闭合:如果百分比关键帧代码里漏了闭合的},整个@keyframes规则都会失效
  • 重复定义冲突属性:比如在百分比关键帧里不小心覆盖了transform的动画值,导致动效被抵消

再看你给出的.car2代码,它的@keyframes只定义到75%的关键帧,没有写100%的状态。虽然forwards填充模式会让元素保持动画最后一个关键帧的状态,但部分浏览器对不完整的关键帧序列解析可能存在问题,导致动画无法正常触发。

修复方案

  1. 把.car1的from/to替换成百分比时,确保语法完全正确,示例如下:
@keyframes car1 {
  0% { transform: translateX(550px); }
  100% { transform: translateX(-550px); }
}

写完后仔细检查拼写、空格和大括号闭合情况。

  1. 给.car2的关键帧补充100%的状态,哪怕和75%的状态一致,保证动画周期完整:
@keyframes car2 {
  0% { top: 30px; }
  25% { top: 130px; }
  40% { top: 230px; }
  75% { top: 330px; }
  100% { top: 330px; } /* 可以根据需求修改为其他值 */
}

如果按照上面的方法调整后还是有问题,可以检查一下元素的其他CSS属性是否和动画属性冲突(比如有没有其他transform或top的规则优先级更高)。

内容的提问来源于stack exchange,提问作者VG__

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:24:31