AUTO · 自动演示
参数调改
PLAYGROUND
荧光色--hl_color
划过时长--dur_ms
4002400
高亮高度--height_pct
30110
笔触倾斜--skew_deg
-200
高亮后文字色--hl_text
划过缓动--ease
实现要点
NOTES- 01
高亮不是背景色而是 background-image:no-repeat 的单色线性渐变 + background-size 从 0% 涨到 100%,宽度推进即『划过』;比用伪元素更省一层 DOM,且天然随文字换行(mark 是 inline,逐行生效)。
- 02
background-position: 0 78% 让荧光带压在文字中下部(height_pct 控制条高,允许超过 100% 包住整字),再给渐变角度加 skew_deg 形成斜切笔触,模拟真实荧光笔的手写斜边。
- 03
文字颜色切换刻意滞后(transition-delay 0.55 周期 + keyframes 内 color 帧):等荧光完全盖过字符再翻成深色,避免『浅黄底浅灰字』的低对比瞬间;深色荧光色请同步改 --hl_text。
- 04
keyframes 里 78%-86% 是满盖停留段,96%-100% 快速退场——把退场收进同一条动画里让循环自洽;若只想要单向划过不退场,把 78% 之后的帧都固定在 100% 宽并把 iteration-count 改 1、fill-mode forwards。
- 05
mark 元素自带浏览器默认黄底(UA 样式 background-color),务必用自定义类覆盖掉,避免与划过动画叠加出两截黄色。
- 06
性能:动画走 background-size(重绘路径),作用面积只有几个字的 inline 盒,开销可忽略;不要把长篇段落整段做扫过动画。
- 07
无障碍:reduced-motion 下跳过扫过动画,荧光常显(静态高亮即最终语义状态);文字语义不依赖动画状态。
源代码
SOURCE
加载源代码…