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

如何实现CSS链接悬停动画鼠标移出时平滑返回初始位置

问题原因

当前代码仅在<a>标签的:hover状态下绑定了位移动画,鼠标移出链接区域时,hover伪类立即失效,对应的动画规则会被直接移除,浏览器会瞬间把元素样式重置为初始值,因此会出现文本瞬移归位的生硬效果。

修复方法

这类简单的双向状态切换交互,不需要用@keyframes关键帧动画实现,用CSS的transition过渡属性是更简洁、维护成本更低的方案:只要给链接的默认状态添加过渡规则,浏览器会自动监听指定CSS属性的变化,不管是进入hover还是离开hover,只要属性值发生改变,就会自动触发平滑过渡效果。

具体修改点如下:

  • 移除原有:hover上绑定的所有animation相关规则,以及单独定义的@keyframes link动画段
  • 给链接的默认样式添加transition属性,指定要过渡的属性、动画时长、缓动函数
  • 在:hover状态下直接设置偏移后的目标边距值即可

修改后的完整CSS代码如下,原有HTML代码不需要做任何调整:

#connect {
  background-color: #303841;
  margin-top: 0;
  color: white;
  padding-top: 5%;
  text-align: center;
  padding-bottom: 5%;
}
#connect h1 {
  margin-top: 0;
}
#connect a {
  color: white;
  text-decoration: none;
  /* 监听margin-left属性变化,0.35秒完成过渡,缓动效果为ease-out */
  transition: margin-left .35s ease-out;
}
#connect a:hover {
  margin-left: 3%;
}

补充:如果坚持要使用关键帧动画实现,需要给非hover状态也绑定反向的返回动画,但这种写法冗余度高,还需要额外处理动画触发时序问题,不推荐使用,这类简单状态动效用transition是最优选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 09:00:57