使用 CSS 实现打字机效果

实现效果

在线演示

实现

HTML 元素:

html 复制代码
<div class="typewriter">
  <h1 class="typing">The cat and the hat.</h1>
</div>

实现打字机效果的关键是两个动画效果,文字出现的动画,和光标闪烁出现的动画。

这两个动画的实现方式也很简单,文字出现的打字机动画只通过控制元素长度即可。光标闪烁出现可以通过添加右边框,并且给边框添加颜色动画实现。

css 复制代码
/* 打字机动画 */
@keyframes typing {
  from { width: 0 }
  to { width: 100% }
}
css 复制代码
/* 光标动画 */
@keyframes blink-caret {
  from, to { border-color: transparent }
  50% { border-color: orange }
}

然后将动画效果添加到指定的元素上即可。

css 复制代码
.typewriter .typing {
  color: #fff;
  font-family: monospace;
  overflow: hidden; /* 保证文字在动画之前隐藏 */
  border-right: .15em solid orange; /* 使用边框实现光标 */
  white-space: nowrap;
  margin: 0 auto;
  letter-spacing: .15em;
  animation:  /** 动画效果 */
    typing 3.5s steps(30, end),
    blink-caret .5s step-end infinite;
}

结合 Javascript 来控制样式类显示隐藏时机,可以轻松为不同文本实现打字机效果。

参考链接

相关推荐
灯澜忆梦11 分钟前
【基于GO的Web开发3】gin框架_HTML渲染
前端·golang·gin
小徐_23337 小时前
wot-ui-cli 1.1.0 发布:支持 OpenCode、Antigravity,wot-ui 图标迁移不再靠猜
前端
__zRainy__7 小时前
Node.js Web 框架选型指南:从 Express 到 Hono 的全景对比
前端·node.js·express·koa·nestjs·egg·fastify
西瓜有点饿7 小时前
PostCSS 和 UnoCSS 的作用和区别
前端·postcss
伟大的兔神8 小时前
我做了一个本地优先的 AI 图片工作台:Loomora v1.0.0 正式发布
前端·javascript·vue.js
90后的晨仔9 小时前
uni-app项目 Vue3 状态管理 Pinia 完全指南:从概念到实战的深度解析
前端
90后的晨仔9 小时前
uni-app 在 iOS 平台跳转页面时移除底部安全区域的完整技术指南
前端
用户9385156350710 小时前
React + JWT 登录鉴权底层原理与工程化实践
前端·react.js
zww894911110 小时前
家政派单系统开发实战:架构设计与派单算法指南
前端·系统架构
fangzhanpeng16810 小时前
(前端)2.js变量作用域样例
开发语言·前端·javascript