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

为什么我的CSS transition移入生效、移出反向过渡不生效?

问题原因

你将transition相关属性写在了nav:hover .logobg的伪类触发规则中,仅当nav处于hover状态时,.logobg元素才会被赋予过渡配置:

  • hover触发时,元素有过渡属性,所以位移动画正常
  • 移出hover状态时,.logobg匹配的是默认样式规则,你没有在默认规则中定义过渡属性,所以属性变更直接生效,就出现了瞬移回落的问题。

同理你的.navelements背景色过渡也存在同样的问题,目前仅hover变色时有过渡,移出时也会直接跳回红色。

修复方案

把过渡属性从hover触发的规则中,移动到对应元素的默认样式规则里即可,修改后的核心代码如下:

/* logobg默认规则添加过渡 */
.logobg {
  width: 150px;
  height: 100%;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  transition-duration: 1000ms;
  transition-timing-function: ease-in-out;
}

/* hover规则仅定义变更的属性,删除过渡配置 */
nav:hover .logobg {
  left: 0;
  transform: translateX(0);
}

/* navelements默认规则添加过渡 */
.navelements {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background: red;
  height: 100%;
  transition-duration: 300ms;
}

/* hover规则仅定义背景色变更 */
.navelements:hover {
  background: #303030;
}

补充说明

transition的作用是定义元素属性发生变化时的过渡动画规则,只要将它写在元素的默认样式中,无论是 hover 触发属性变更、还是 hover 结束属性恢复到默认值,只要变化的属性属于过渡监控范围(默认监控所有可过渡属性),都会自动触发过渡效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:15:03