链接箭头滑动 4 种特效(箭头滑移/生长/换位 CSS 源码)

CSS 许可:自研原创

链接箭头滑动 4 种玩法:箭头右移放大、箭头从无到有生长、箭头与文字换位、双箭头连滑,纯 CSS 实现,适合导航菜单、博客列表、CTA 链接。

效果演示(真实可交互)

把鼠标移到任意链接上,观察箭头的滑动姿态与下划线的生长。四种玩法共用一套 HTML 结构,通过类名切换,适合博客列表、导航与「了解更多」类链接。

完整代码

HTML 结构:每个链接由文字 .la-text 与箭头 .la-arrow 组成,箭头用 aria-hidden="true" 标注为装饰性内容:

<a href="#" class="la-link la-slide">
  <span class="la-text">查看产品文档</span>
  <span class="la-arrow" aria-hidden="true">→</span>
</a>

核心 CSS:

.la-link { display: inline-flex; align-items: center; gap: 10px; position: relative; }
.la-arrow {
  display: inline-block;
  transition: transform .4s cubic-bezier(.22, .61, .36, 1),
              opacity .3s ease, width .4s ease;
}

/* 下划线生长(公共) */
.la-link::after {
  content: '';
  position: absolute; left: 0; bottom: 0;
  width: 0; height: 2px;
  background: linear-gradient(90deg, #6c8cff, #b388ff);
  transition: width .4s cubic-bezier(.22, .61, .36, 1);
}
.la-link:hover::after { width: 100%; }

/* ① 箭头右移放大 */
.la-slide:hover .la-arrow { transform: translateX(6px) scale(1.2); }

/* ② 箭头从无到有:width 0 → 18px */
.la-grow .la-arrow { width: 0; opacity: 0; overflow: hidden; }
.la-grow:hover .la-arrow { width: 18px; opacity: 1; }

/* ③ 箭头换位到文字左侧 */
.la-swap .la-arrow { order: -1; margin-right: -26px; opacity: 0; }
.la-swap:hover .la-arrow { margin-right: 0; opacity: 1; transform: translateX(-6px); }

/* ④ 双箭头连滑 */
.la-double:hover .la-arrow { transform: translateX(8px); letter-spacing: 3px; }

参数说明

参数默认值说明
箭头位移6px悬停时 translateX 的距离
放大倍率1.2箭头 scale 的倍数
生长宽度18px生长玩法中箭头的最终宽度
下划线高度2px::after 的高度,越粗越抢眼
动画时长.4s统一过渡时长,可全局调整

兼容性与性能

常见问题

Q: 箭头和文字没有垂直对齐? 给 .la-link 设置 align-items: center,并给箭头加 line-height: 1;若箭头是图片或 SVG,再补一个 vertical-align: middle。

Q: 想要箭头出现在文字上方而不是旁边? 把 .la-link 改成纵向布局(flex-direction: column),让箭头悬停时 translateY 移动,下划线规则保持不变。

Q: 链接里已经用 icon 字体,还能用这个效果吗? 可以,箭头字符换成 <i class="icon-arrow"> 即可,CSS 选择器改为 .la-link:hover i,其余逻辑完全相同。

Q: 移动端没有 hover,箭头动画会怎样? 触屏首次点击会触发 hover 态,箭头动画短暂展示后停留;如需始终显示箭头,删除各玩法的隐藏规则即可。

许可与来源

  • 许可证:自研原创 —— 粤喵自研原创,可免费用于个人与商业项目,无需署名。查看来源公示与许可清单
  • 来源:粤喵团队原创自研(从效果思路到代码实现均为独立完成,未直接复制第三方代码)
  • 首次发布:2026-09-01 · 最近更新:2026-09-01
  • 修改日志:2026-09-01 首次发布;2026-09-13 补充许可证与来源标注、复制按钮说明与法务页入口
  • 纠错:联系页面 / min@cactus.asia,2 个工作日内核实处理

常见问题

这个组件可以商用吗?

可以。本组件为粤喵自研原创,可免费用于个人和商业项目,无需署名。

浏览器兼容性如何?

支持所有现代浏览器(Chrome / Firefox / Safari / Edge 最新版本)。旧版 IE 不支持 CSS 动画相关特性。

怎么修改动画参数?

直接调整 CSS 中的 animation-duration(时长)、animation-timing-function(缓动曲线)等属性即可,代码中有注释说明。

✍️ 作者与审核