H5 中怎么用 CSS 关键帧实现文字逐字打印(Typewriter)的打字机特效

秋强小哥_6382

秋强小哥_6382

2026-10-27

461人浏览

原创

H5文字逐字打印效果通过@keyframes控制容器width从0ch增至文本字符数对应ch值,配合monospace字体、overflow:hidden和white-space:nowrap实现;需用steps(字符数,end)分步动画并动态注入字符数以适配不同文本长度。

h5 中怎么用 css 关键帧实现文字逐字打印(typewriter)的打字机特效

在 H5 页面中实现文字逐字打印(Typewriter)效果,核心是利用 @keyframes 定义字符逐个“出现”的动画,并配合 monospace 字体、overflow: hidden 和 white-space: nowrap 控制显示区域。关键不在于“逐帧控制每个字”,而是通过控制容器宽度从 0 增长,配合字体等宽特性,营造出“打字”错觉。

基础结构:等宽字体 + 隐藏溢出

确保文字有可预测的宽度表现,必须使用等宽字体(如 Consolas、monospace),并设置容器不换行、隐藏超出部分:

<div class="typewriter">Hello, world!</div>

对应 CSS:

.typewriter {
  font-family: Consolas, Monaco, 'Andale Mono', monospace;
  overflow: hidden;           /* 关键:隐藏未“打出”的部分 */
  white-space: nowrap;        /* 关键:强制单行,不换行 */
  border-right: 2px solid #000; /* 可选:模拟光标 */
}

关键帧动画:宽度从 0 到完整内容宽

动画本质是让容器的 width 从 0ch(0 个字符宽度)逐渐增长到文本总字符数对应的 ch 单位宽度。使用 ch 单位能精准匹配等宽字体下每个字符的宽度:

@keyframes typing {
  from { width: 0ch; }
  to   { width: 13ch; } /* "Hello, world!" 共 13 个字符(含空格和标点) */
}

然后应用动画:

Wechat Article Html
Wechat Article Html

将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。

下载
.typewriter {
  animation: typing 3s steps(13, end), blink-caret 0.75s step-end infinite;
}
  • steps(13, end) 表示将动画分为 13 步,每步显示一个字符,且在每步结束时跳变(避免平滑过渡)
  • 3s 是总时长,可根据字符数调整为 0.3s × 字符数 实现匀速效果

添加闪烁光标(可选但推荐)

用另一个关键帧动画控制右边界光标的显隐,增强真实感:

@keyframes blink-caret {
  from, to { border-right-color: transparent; }
  50%      { border-right-color: #000; }
}

注意:要与 typing 动画同时启用,且用 step-end 保持光标只在字符停稳后闪烁。

适配动态内容或不同长度文本

硬编码 13ch 和 steps(13) 不灵活。实际项目中建议:

  • 用 JavaScript 获取文本长度:el.textContent.length,动态设置 width 和 steps()
  • 或改用 width: 100% + max-width 配合 animation-timing-function: steps(N),再用 JS 注入内联样式
  • 更简洁方案:用 ch 单位 + CSS 自定义属性,例如 --char-count: 13;,在 keyframes 中写 to { width: calc(var(--char-count) * 1ch); }

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

全能打印神器
全能打印神器

全能打印神器是一款非常好用的打印软件,可以在电脑、手机、平板电脑等设备上使用。支持无线打印和云打印,操作非常简单,使用起来也非常方便,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

html css overflow css教程

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2683

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

5803

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

6770

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

6498

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

923

5

css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

5076

6

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

1097

5

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.28

1958

6

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

2023.08.01

3886

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 228人学习