使用 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 来控制样式类显示隐藏时机,可以轻松为不同文本实现打字机效果。

参考链接

相关推荐
David凉宸几秒前
vue2与vue3的差异在哪里?
前端·javascript·vue.js
笔画人生5 分钟前
Cursor + 蓝耘API:用自然语言完成全栈项目开发
前端·后端
AC赳赳老秦21 分钟前
外文文献精读:DeepSeek翻译并解析顶会论文核心技术要点
前端·flutter·zookeeper·自动化·rabbitmq·prometheus·deepseek
小宇的天下28 分钟前
Calibre 3Dstack --每日一个命令day18【floating_trace】(3-18)
服务器·前端·数据库
毕设源码-钟学长34 分钟前
【开题答辩全过程】以 基于web技术的酒店信息管理系统设计与实现-为例,包含答辩的问题和答案
前端
css趣多多42 分钟前
this.$watch
前端·javascript·vue.js
干前端1 小时前
Vue3虚拟滚动列表组件进阶:不定高度及原理分析!!!
前端·前端组件
雨季6661 小时前
Flutter 三端应用实战:OpenHarmony “极简文本行数统计器”
开发语言·前端·flutter·ui·交互
MAHATMA玛哈特科技1 小时前
以曲求直:校平技术中的反直觉哲学
前端·数据库·制造·校平机·矫平机·液压矫平机
C澒1 小时前
前端技术核心领域与实践方向
前端·系统架构