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

参考链接

相关推荐
美狐美颜sdk1 小时前
从人脸关键点到动态贴图:面具特效在美颜SDK中的实现原理
前端·图像处理·人工智能·直播美颜sdk·美颜api
我命由我123452 小时前
React Router 6 - 编程式路由导航、useInRouterContext、useNavigationType
前端·javascript·react.js·前端框架·html·ecmascript·js
威联通网络存储2 小时前
告别掉帧与素材损毁:威联通 QuTS hero 如何重塑影视后期协同工作流
前端·网络·人工智能·python
anOnion2 小时前
构建无障碍组件之Tabs Pattern
前端·html·交互设计
一招定胜负3 小时前
课堂教学质量综合评分系统
java·linux·前端
2301_780669863 小时前
前端logo替换开发
前端·vue.js
启山智软3 小时前
【启山智软智能商城系统技术架构剖析】
java·前端·架构
我命由我123453 小时前
React Router 6 - 嵌套路由、路由传递参数
前端·javascript·react.js·前端框架·html·ecmascript·js
十六年开源服务商4 小时前
2026年WordPress网站地图完整指南
java·前端·javascript
GISer_Jing4 小时前
Agent架构师详解:Skill是什么?附CSDN博客撰写可复用Skill示例
前端·ai·aigc