MOTION HUB

字符扰动

Text Scramble
#text-scramble · 66/72
HOVER · 悬停交互

参数调改

PLAYGROUND
扰动帧间隔--char_ms
1690
ms
自动重放周期--cycle_ms
15009000
ms
文字字号--font_px
2464
px
定字颜色--text_color
噪点颜色--noise_color
落定过渡--settle_ms
0400
ms

实现要点

NOTES
  1. 01

    经典 frame-slice 模式:每个字符有独立的 [from, to) 帧区间——from 前显示占位空白、区间内每帧从 GLYPHS 表随机取符号、to 之后锁定真实字符;左侧字符区间靠前,整体呈『从左往右解码』的推进感。

  2. 02

    扰动频率用『时间戳节流的 requestAnimationFrame』控制:CHAR_MS 间隔才换一次随机字符,而不是每帧都换——过快会变成闪烁噪声,40ms 上下的换字频率才有『密码机』质感。

  3. 03

    等宽字体 + \u00a0 占位保证扰动全程宽度稳定、文字不横跳;空格字符直接原样保留不参与扰动。

  4. 04

    文案放在 h1 的 data-final 属性上,JS 读取驱动;改文案只改一处。字符总量与 maxEnd 决定单次解码时长,长文案要按比例调大 --cycle_ms。

  5. 05

    性能:每帧只更新一次 textContent(单次重排),比逐字符 span 更省;字符数 ≤ 40 观感最佳,大段文本建议只对标题使用。

  6. 06

    无障碍:真实语义放在 h1 的 aria-label 上,扰动 span 标记 aria-hidden,读屏永远读到完整文案;reduced-motion 下跳过扰动直接静态显示最终文案。

源代码

SOURCE

加载源代码…