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

移除wiggle类并添加right类时,CSS动画与过渡衔接问题咨询

同时移除wiggle动画类并添加right过渡类的元素表现分析

先还原你的场景代码:

<div class="outer">
  <div class="inner wiggle"></div>
</div>
@keyframes wiggle {
  from { left: 10%; }
  50% { left: 30%; }
  to { left: 10%; }
}
.inner {
  left: 0;
  &.wiggle { animation: wiggle 2s infinite; }
  &.right { left: 90%; transition: left 2s; }
}

当你同时移除wiggle类并添加right类时,元素的表现可以拆成两步来看:

  • 动画立刻终止,元素定格在动画当前执行的位置
    移除wiggle类的瞬间,浏览器会直接停止动画的执行,不会等待动画完成当前循环。元素的left值会直接跳转到动画运行到那一瞬间的帧位置——比如如果动画刚执行到50%的节点,元素就会停在left:30%;如果刚好在动画的起始/结束帧,就会停在left:10%。

  • 从动画终止位置开始,触发到left:90%的平滑过渡
    因为right类给元素设置了left:90%和transition: left 2s规则,浏览器会以动画终止时的left值为起始点,用2秒的时间平滑过渡到90%的位置,而不是直接跳转。

简单来说,就是动画中途“刹车”,然后从刹车的位置慢慢滑到目标点,整个过程是连贯的,不会有突兀的跳转。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:42:16