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

CSS动画加载抖动问题咨询:组件加载默认需处于translateX(0)位置

解决CSS动画加载时元素抖动问题

问题根源在于页面/组件加载时,.iconTwo元素先以你设置的默认样式(transform: translateX(0)、opacity:1)渲染,随后动画触发并跳转到0%帧的状态(translateX(15px)、opacity:0),再执行动画到最终状态,这个初始的样式跳转就造成了抖动。

要解决这个问题,只需要让元素的初始默认状态和动画的起始帧(0%)完全一致,同时优化动画配置:

修改后的代码

@keyframes slideAnimationBackLarge {
  0% { transform: translateX(15px); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}

.iconTwo {
  position: absolute;
  /* 初始状态和动画0%帧对齐 */
  transform: translateX(15px);
  opacity: 0;
  /* 添加forwards,让动画结束后保持最终状态 */
  animation: slideAnimationBackLarge 0.4s forwards;
  /* 移除多余的transition,避免和animation冲突 */
}

关键改动说明

  • 初始状态匹配动画起始帧:页面加载时元素直接处于动画的起始位置和透明度,不会出现先显示最终状态再跳转的情况,彻底消除抖动。
  • 使用animation-fill-mode: forwards:确保动画执行完毕后,元素保持动画100%帧的样式,无需手动重复设置最终状态。
  • 移除transition:动画效果已经由@keyframes完全控制,同时存在transition可能导致样式计算冲突,反而引发异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:32:13