HOVER · 悬停交互
参数调改
PLAYGROUND
已完成色--done_color
当前步色--active_color
底轨颜色--track_color
圆点尺寸--dot_size
1840
推进时长--dur_ms
2001200
缓动曲线--ease
实现要点
NOTES- 01
状态模型是三态类:is-done(圆点填充绿 + 对勾旋出)、is-active(描边蓝 + 外圈光环 + 微放大)、默认(灰描边);连接线的显隐用相邻选择器 .is-done + .steps__item::after 驱动——线属于『下一步左边的那根』,铺满即代表上一步已完成。
- 02
对勾是 9×5px 的边框 L 形(border-left + border-bottom + rotate -45°),从 scale(0) 弹到 scale(1),用带回弹的 cubic-bezier 让『打勾』有落章手感;无需 SVG。
- 03
连接线进度用 scaleX(0→1) + origin:left 从左向右铺,回退时向左收回;只动 transform,与圆点缩放同曲线同步推进。
- 04
当前步光环用 box-shadow 0 0 0 5px 的 18% 透明强调色(color-mix 派生),比 blur 辉光干净;圆点 scale(1.08) 让当前步略大,层级一眼可辨。
- 05
JS 只负责切换索引与三态类、维护按钮 disabled 与 aria-current='step' 语义;自动演示每 2.4s 步进,用户点击后让位。
- 06
reduced-motion:所有过渡压到 0.01ms,步骤推进瞬时完成,状态本身不变。
源代码
SOURCE
加载源代码…