码上掘金 | 简单实现一个打字机动画

简介: 码上掘金 | 简单实现一个打字机动画

前言


众所周知,掘金是一个技()术()社区,我一直在沸点快乐的学()习(),那么作为一个合格的沸人。不仅要掌握熟练的学()习()技术,掌握打字技术使我们必备技能之一。


所以,下面就让我们简单实现一个打字机来帮我们打字吧


代码块


https://code.juejin.cn/pen/7092220950711631908


实现过程


预先准备


文字


然后打字机肯定是需要打字的,所以我们先来设定一下我们需要打的字


我们定义一个 text 文本

<body>
<div class="typewriter-effect">
  <div class="text"id="typewriter-text">
  </div>
</div>
</body>


然后使用 js 来设置 text 内部的文本元素

const typeWriter = document.getElementById('typewriter-text');
const text ='I love mofish in Juejin .';
typeWriter.innerHTML = text;
typeWriter.style.setProperty('--characters', text.length);

--characters 为包含字符数的变量,用于文本的动画设置。


动画


打字机的动画其实分为两个部分


  • 出现的动画
  • 插入符 出现的动画


所以我们定义两个动画效果


  • typing 字体出现动画


@keyframes typing {
75%,
100% {
    max-width: calc(var(--characters) * 1ch);
  }
}


  • blink 插入符动画


@keyframes blink {
0%,
75%,
100% {
    opacity: 1;
  }
25% {
    opacity: 0;
  }
}


实现动画


文本动画实现


首先我们先只让文本实现一个依次出现的动画效果

.typewriter-effect > .text {
  max-width: 0;
  animation: typing 3s steps(var(--characters)) infinite;
  white-space: nowrap;
  overflow: hidden;
}

我们对文本添加动画,并根据需要使用white-space: nowrapoverflow: hidden使内容不可见


效果:


网络异常,图片无法展示
|


加入插入符动画 实现一个类似打字的效果


我们使用:after伪元素将插入符号添加到容器元素

.typewriter-effect:after {
  content: " |";
  animation: blink 1s infinite;
  animation-timing-function: step-end;
}

在文本动画的每次字体动画后 加入这个插入符的动画,就最终得到了我们需要的效果


网络异常,图片无法展示
|


结语


这是由一个非常非常不专业的后端混子完成的,仅供大家一乐~


希望大家都可以在掘金快乐的学习(摸鱼)~~

目录
相关文章
|
7月前
|
前端开发 JavaScript
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
34 2
游戏开发零基础入门教程(5):不要挡住我,我要去上面
这一节我们学习了层级管理,以及通过使用拖拽的方式来调整层级的顺序。 在真实的游戏中可能会包含很多的层级,在调整层级时,不要忘记口诀:谁挡住了我,我就去谁的上面。 试着在游戏中加入更多的层级,拖拽调整层级的顺序,然后观察编辑区中的图片显示效果。
167 0
|
前端开发
前端知识案例学习3-毛玻璃效果
前端知识案例学习3-毛玻璃效果
74 0
前端知识案例学习3-毛玻璃效果
|
Java
Java实现拼图小游戏(6)—— 移动图片(键盘监听实操练习)
当我们实现向上移动图片的时候,其实就是把空图片的下面一张图片往上移动,然后将空图片的下面那张图片设置为空图片,最后再调整初始位置为现在空图片所在位置即可,注意做完这些以后还要再加载图片,否则显示不出来
400 0
Java实现拼图小游戏(6)—— 移动图片(键盘监听实操练习)
|
前端开发 JavaScript
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
106 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
|
前端开发 容器
#yyds干货盘点# 前端歌谣的刷题之路-第一百四十三题-双列布局-浮动
#yyds干货盘点# 前端歌谣的刷题之路-第一百四十三题-双列布局-浮动
87 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百四十三题-双列布局-浮动
|
前端开发 容器
#yyds干货盘点# 前端歌谣的刷题之路-第一百四十四题-双列布局-定位
#yyds干货盘点# 前端歌谣的刷题之路-第一百四十四题-双列布局-定位
108 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百四十四题-双列布局-定位
|
图形学
egret连连看项目实战之二(礼盒动画)
egret连连看项目实战之二(礼盒动画)
egret连连看项目实战之二(礼盒动画)
|
前端开发 JavaScript 程序员
2023将至,前端程序员们应该一起放个烟花庆祝一下,走起
前言:小时候,在我印象中,每到快过年的时候就有很多卖炮仗的,一般也就是阳历的12月份到明年的正月15号卖炮仗的商家比较多,省下买辣条的钱去买炮仗,在老家也就过年和除夕两天及正月15日这几天放烟花和炮仗比较猛,现在年纪大了,听不得炮仗那种噪声了,也考虑到环保,工作之后的程序员以代码的形式演绎一下烟花的效果。
285 0
2023将至,前端程序员们应该一起放个烟花庆祝一下,走起
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第十八题-清除浮动
#yyds干货盘点# 前端歌谣的刷题之路-第十八题-清除浮动
104 0
#yyds干货盘点# 前端歌谣的刷题之路-第十八题-清除浮动