使用JavaScript控制字符逐字输出,结合CSS光标闪烁动画,可实现网页打字机效果。示例代码通过定时器递增显示文本,每100毫秒添加一个字符,并用::after伪元素配合@keyframes创建闪烁光标。进阶功能包括多行文本循环、回删效果及暂停控制,需管理文本状态与递归调用。为提升体验,应适配打字速度、分段展示长文本、提供跳过按钮,并考虑视觉敏感用户需求。核心在于节奏控制,细节如光标兼容性和中断处理需注意。

想让网页上的文字像打字机一样逐字出现?这种效果不仅能吸引用户注意,还能提升页面的交互感。实现方式其实不难,用 HTML5、CSS 和 JavaScript 就能轻松完成。
使用 JavaScript 控制文本逐字显示
核心思路是通过 JavaScript 定时将字符追加到页面元素中,模拟打字过程。
示例代码:
这个方法灵活,可以自定义打字速度、内容,甚至加入光标闪烁效果。
立即学习“前端免费学习笔记(深入)”;
添加光标闪烁动画(CSS 实现)
为了让效果更真实,可以在文字末尾加一个闪烁的光标。
使用 CSS 的 @keyframes 来实现:
#typewriter::after {
content: "|";
animation: blink 0.7s infinite;
}
@keyframes blink {
0%, 100% { opacity: 1; }
50% { opacity: 0; }
}
这样光标会持续闪烁,直到打字结束。如果需要打字结束后光标消失,可在 JavaScript 中打字完成后移除伪元素或修改样式。
支持多行文本与回删效果
进阶玩法:模拟真实打字机,写完一段后回删,再写下一段。
实现逻辑:
- 准备多个句子,按顺序显示
- 每句打完后暂停
- 然后逐个删除字符
- 再开始下一句
关键在于控制状态和调用递归函数,配合 setTimeout 或 setInterval 精确控制节奏。
性能与用户体验建议
虽然动画很酷,但要注意几点:
- 避免在移动设备上设置过快或过慢的打字速度
- 长文本建议分段展示,防止用户等待太久
- 可提供“跳过动画”按钮,提升可用性
- 考虑关闭动画的选项,照顾有视觉敏感的用户
基本上就这些。打字机效果看似复杂,其实核心就是控制字符串的输出节奏。结合 CSS 动画,就能做出既美观又流畅的文字动画。不复杂但容易忽略细节,比如光标兼容性和文本中断处理。掌握基础后,可以自由扩展出更多创意玩法。











