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

参考链接

相关推荐
cypking44 分钟前
Vue 3 + Vite + Router + Pinia + Element Plus + Monorepo + qiankun 构建企业级中后台前端框架
前端·javascript·vue.js
雨雨雨雨雨别下啦1 小时前
【从0开始学前端】vue3简介、核心代码、生命周期
前端·vue.js·vue
simon_93492 小时前
受够了压缩和收费?我作为一个码农,手撸了一款无限容量、原图直出的瀑布流相册!
前端
e***87702 小时前
windows配置永久路由
android·前端·后端
Dorcas_FE3 小时前
【tips】动态el-form-item中校验的注意点
前端·javascript·vue.js
小小前端要继续努力3 小时前
前端新人怎么更快的融入工作
前端
四岁爱上了她3 小时前
input输入框焦点的获取和隐藏div,一个自定义的下拉选择
前端·javascript·vue.js
fouryears_234174 小时前
现代 Android 后台应用读取剪贴板最佳实践
android·前端·flutter·dart
boolean的主人4 小时前
mac电脑安装nvm
前端
用户1972959188914 小时前
WKWebView的重定向(objective_c)
前端·ios