Typed.js打字机配置

结城 JavaScript 6 次阅读 962 字 发布于 16 天前 预计阅读时间: 4 分钟


简单入门

Typed.js​是一个流行的JS库,用于在网页上模拟打字机效果。

博客的首页就采用了这个动态库,这段配置是博客首页用于Typed.js库的初始化配置。

{
    "backSpeed": 50,
    "loop": false,
    "showCursor": true,
    "strings": [
        "愿你保持不变 保持己见 充满热血"
    ],
    "typeSpeed": 140
}

参数详解

属性名类型作用描述
stringsArray内容源: 定义要显示的文本内容。此处为单条语句,库会按顺序逐字符打印数组中的字符串。
typeSpeedNumber打字速度: 单位为毫秒(ms),数值越大,打字速度越慢。140 表示每输入一个字符间隔 140 毫秒。
backSpeedNumber退格速度: 删除文字的速度。虽然在本配置中未开启循环,但若触发删除动作,速度将为 50ms/字符。
loopBoolean是否循环: 设置为 false 表示动画播放一次后即停止,不会回到开头重新开始。
showCursorBoolean显示光标: 设置为 true 会在文本末尾显示一个闪烁的竖线(模拟输入光标),增加视觉上的真实感。

对应效果预览

配置生效后,页面会呈现如下动态过程:

愿 |
愿你 |
愿你保 |

愿你保持不变 保持己见 充满热血 | (停止,光标闪烁)

代码实现参考

若要在项目中应用此配置,标准的初始化方式如下:

var typed = new Typed('#element', {
  strings: ["愿你保持不变 保持己见 充满热血"],
  typeSpeed: 140,
  backSpeed: 50,
  loop: false,
  showCursor: true
});

功能详解

核心内容与速度控制

属性类型默认值说明
stringsArray['']包含所有要打印的字符串数组。
stringsElementStringnull指定 HTML 元素的 ID,从中提取文字(利于 SEO)。
typeSpeedNumber0打字速度(毫秒/字符)。
startDelayNumber0动画开始前的延迟时间。
backSpeedNumber0退格(删除)的速度。
backDelayNumber700打完一段字后,开始删除前的停顿时间。

循环与行为逻辑

控制动画的重复方式和特殊逻辑。

属性类型默认值说明
loopBooleanfalse是否循环播放。
loopCountNumberInfinity循环次数(Infinity 为无限)。
showCursorBooleantrue是否显示闪烁的光标。
fadeOutBooleanfalse用淡出效果代替退格删除。
fadeOutClassStringtyped-fade-out淡出效果的 CSS 类名。
smartBackspaceBooleantrue智能退格:如果两句话开头相同,只删除不同的部分。

高级交互

如果你需要在输入框或特定位置使用:

attr​: 默认为 null

如果你想在HTML属性中打字(例如 placeholder​),可以设置attr: 'placeholder'

contentType​: 默认为'html'

可以设置为'null'​,标识为纯文本,如果设为 'html'​,字符串中的或<strong>标签会被正确解析。

生命周期回调函数

这些函数允许你在特定时间点执行自定义 JavaSript 代码:

  • onBegin(self) : 动画开始前触发。
  • onComplete(self) : 所有打字任务完成后触发。
  • preStringTyped(arrayPos, self) : 在开始打印每一条字符串之前触发。
  • onStringTyped(arrayPos, self) : 在每一条字符串打印完成后触发。
  • onLastStringBackspaced(self) : 在最后一条字符串退格完成后触发。
  • onTypingPaused(arrayPos, self) : 暂停时触发。
  • onTypingResumed(arrayPos, self) : 恢复播放时触发。

进阶配置

如果你想做一个智能的、带循环的打字效果,可以参考以下写法:

var typed = new Typed('#element', {
  strings: [
    '欢迎来到我的网站', 
    '我擅长 Java 开发', 
    '我擅长 SpringBoot 架构'
  ],
  typeSpeed: 60,
  backSpeed: 30,
  smartBackspace: true, // 打印第三句时,不会删除“我擅长 ”这四个字
  backDelay: 2000,      // 打完后等2秒再删
  loop: true,
  cursorChar: '_',      // 将光标改为下划线
  contentType: 'html'   // 支持解析 HTML 标签
});
给时光以生命,给岁月以文明
最后更新于 2026-06-15