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

CSS过渡能否在添加类时用ease-in、移除类时用ease-out?

实现添加/移除类时使用不同的CSS过渡缓动效果

当然可以实现!核心思路是利用CSS选择器的优先级,给添加类和移除类这两种状态分别指定不同的过渡缓动函数:在基础样式里定义移除类时的ease-out(或对应贝塞尔曲线),在添加的目标类里覆盖过渡属性,指定添加类时的ease-in。

具体逻辑:

  • 元素处于初始状态(无.alt类)时,过渡规则使用easeOutCubic,对应移除类时的动画
  • 元素添加.alt类后,过渡规则被覆盖为easeInCubic,对应添加类时的动画

下面是调整后的完整代码示例:

HTML

<div class="box"></div>
<button>CLICK</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

CSS

.box {
  width: 50px;
  height: 50px;
  background: red;
  /* 移除.alt类时使用easeOutCubic缓动 */
  transition: all 1500ms cubic-bezier(0.215, 0.61, 0.355, 1);
}

.box.alt {
  transform: translate3d(600px, 0px, 0) scale(1.5);
  /* 添加.alt类时使用easeInCubic缓动,覆盖基础过渡规则 */
  transition: all 1500ms cubic-bezier(0.55, 0.055, 0.675, 0.19);
}

JavaScript

$('button').on("click", function(){ 
  $('.box').toggleClass("alt") 
})

点击按钮测试就能看到:添加.alt类时,元素会以ease-in的节奏移动放大;移除类时,则以ease-out的节奏回归原位。需要注意的是,过渡的属性(这里是all)和时长要保持一致,这样动画切换才会流畅无断层。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:06:25