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

如何用CSS Transition实现元素快速显示、缓慢隐藏效果?

实现快速显示、缓慢隐藏的Opacity过渡效果

这个需求其实很容易解决,核心思路就是给显示(hover状态)和隐藏(默认状态)分别设置不同的过渡时长与曲线——你之前的代码只给元素统一设置了一套过渡规则,所以显示和隐藏的速度完全一致,不符合需求。

调整后的CSS代码

.mySpan {
  opacity: 0;
  font-size: 12px;
  background: red;
  border-radius: 5px;
  color: #fff;
  /* 隐藏时用慢过渡,这里设为1秒,搭配平缓的贝塞尔曲线让动画更自然 */
  transition: opacity cubic-bezier(0.4, 0, 0.2, 1) 1s;
}

.mySpan:hover {
  opacity: 1;
  /* 显示时用快过渡,比如0.1秒,用陡峭的曲线让显示更干脆利落 */
  transition: opacity cubic-bezier(0, 0.52, 1, 1) 0.1s;
}

原理说明

  • 当鼠标悬停时,触发.mySpan:hover的样式,此时会使用hover块内定义的快速过渡规则,让opacity从0→1在0.1秒内完成,实现快速显示的效果。
  • 当鼠标移开时,元素回到默认的.mySpan样式,此时会使用默认状态下的慢速过渡规则,让opacity从1→0在1秒内完成,实现缓慢隐藏的效果。

你可以根据自己的偏好调整过渡时长(比如把隐藏的1秒改成0.8秒)和贝塞尔曲线参数,来达到最符合预期的动画质感。另外要注意,opacity: 0的元素依然会占据页面空间,所以hover事件可以正常触发,不需要额外处理交互区域的问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 04:59:08