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

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

前言


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


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


代码块


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;
}

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


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


结语


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


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

目录
相关文章
|
4月前
|
前端开发 JavaScript
还在为酷炫css动画背景头疼吗?1分钟解决
还在为酷炫css动画背景头疼吗?1分钟解决
|
6月前
|
前端开发 JavaScript
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
杨校老师课堂之JavaScript案例之跑马灯左右无缝连接图片自动轮播
32 2
|
JavaScript 前端开发
【原生JS】做一个打字消除小游戏,学习摸鱼两不误
【原生JS】做一个打字消除小游戏,学习摸鱼两不误
128 0
【原生JS】做一个打字消除小游戏,学习摸鱼两不误
游戏开发零基础入门教程(5):不要挡住我,我要去上面
这一节我们学习了层级管理,以及通过使用拖拽的方式来调整层级的顺序。 在真实的游戏中可能会包含很多的层级,在调整层级时,不要忘记口诀:谁挡住了我,我就去谁的上面。 试着在游戏中加入更多的层级,拖拽调整层级的顺序,然后观察编辑区中的图片显示效果。
158 0
|
小程序
小蚂蚁的第二个小游戏作品
关于第二个游戏的想法,其实很早之前就有了,但是,一直也没有去做。所以,它就像个小讨厌鬼一样,时不时的过来戳你一下。不论你当前正在做着什么类型的游戏,它总是不时的提醒你:嗨!这个想法挺不错的,要不要试着加入到这个游戏里?消除搭配上射击,多有意思,要不要试试?这么好的想法,你舍得一直把它搁置在那里吗?…...
65 0
|
Python 容器
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏05之滚动屏幕
通过游戏学Python系列之小兔要上天---手把手教你使用Pygame开发平台跳跃类游戏05之滚动屏幕
208 0
|
前端开发
23个css动画效果,持续更新中...
23个css动画效果,持续更新中...
390 0
|
前端开发 JavaScript API
好用,好看的轮子来一波~~
好用,好看的轮子来一波~~
好用,好看的轮子来一波~~
|
前端开发 JavaScript
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
102 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
|
前端开发 JavaScript
#yyds干货盘点# 前端歌谣的刷题之路-第八十五题-列表动态渲染
#yyds干货盘点# 前端歌谣的刷题之路-第八十五题-列表动态渲染
113 0
#yyds干货盘点# 前端歌谣的刷题之路-第八十五题-列表动态渲染