MOTION HUB

磁吸下划线

Magnetic Underline
#link-underline-magnetic · 30/72
MOVE · 移动交互

参数调改

PLAYGROUND
下划线颜色--line_color
线的粗细--line_px
15
px
动画时长--dur_ms
120700
ms
缓动曲线--ease
链接文字色--text_color

实现要点

NOTES
  1. 01

    进入/离开方向由 JS 在 mouseenter/mouseleave 里比较光标与链接中点的偏移得出(|dx| 与 |dy| 取大者),写入 CSS 变量 --origin;CSS 只负责 scaleX 过渡,职责分离。

  2. 02

    关键时序:mouseleave 里『先改 origin、后移除 hover』——浏览器在事件处理后统一重算样式,收缩会朝向离开的那一边,线像跟着光标走。

  3. 03

    左右进入从对应端生长(origin 0%/100%);上下进入给中心 origin,线从中间展开——若上下也要定向,可换 scaleY + origin top/bottom 的变体。

  4. 04

    transition 只挂 transform(和 color),2px 细线重绘成本可忽略;链接保留 focus-visible 描边,键盘可用性不被动效牺牲。

  5. 05

    reduced-motion:停用自动演示,用户主动触发的过渡保留;要彻底静态把 --dur_ms 调到 0 即可。

  6. 06

    预览空闲演示:静置约 3s 后轮流给链接加 .is-demo 模拟『从左进入、向右离开』,真实移动立即接管。

源代码

SOURCE

加载源代码…