MOTION HUB

打字机

Typewriter
#typewriter · 69/72
AUTO · 自动演示

参数调改

PLAYGROUND
打字周期--dur_ms
240012000
ms
光标闪烁间隔--caret_blink_ms
4001600
ms
文字字号--font_px
2456
px
文字颜色--text_color
光标颜色--caret_color

实现要点

NOTES
  1. 01

    纯 CSS 核心:span 宽度从 0ch 到 10ch 用 steps(10, end) 逐格撑开,等宽字体下 1ch 恰好一个字宽,overflow:hidden 裁切沿字格推进即逐字打出。

  2. 02

    一个周期切三段:0-44% 打字、44-60% 停留、60-100% 删除;timing-function 写在关键帧内部让打字与删除各自走 steps,中间停留用 steps(1) 保持不动。

  3. 03

    改文案必须同步三处:HTML 文本、keyframes 里的 ch 数、steps 的格数,三者不一致会出现半字符裁切或跳格。

  4. 04

    光标是 span 的 border-right,宽度为 0 时也随盒子留在裁切线上持续闪烁,无需额外定位;闪烁用 steps(1) 做硬切换,比连续渐变更像终端。

  5. 05

    性能:动画只改 width,会触发重排,但作用范围是单行小面积文本,实测无感;不要把这套宽度动画用于大段正文。

  6. 06

    无障碍:h1 放完整 aria-label、内部 span 标记 aria-hidden;reduced-motion 下取消宽度动画与光标,直接静态显示完整文本,底部基准灰字同时隐藏避免重复。

源代码

SOURCE

加载源代码…