效果预览

按下右侧的“点击预览”按钮可以在当前页面预览,点击链接可以全屏预览。

https://codepen.io/comehope/pen/ZMwgqK

可交互视频

此视频是可以交互的,你可以随时暂停视频,编辑视频中的代码。

请用 chrome, safari, edge 打开观看。

https://scrimba.com/p/pEgDAM/cJB3rAN

源代码下载

每日前端实战系列的全部源代码请从 github 下载:

https://github.com/comehope/front-end-daily-challenges

代码解读

定义 dom,容器中包含若干子元素,每个子元素是 1 个字母:

<div class="container">
<span>h</span>
<span>a</span>
<span>p</span>
<span>p</span>
<span>y</span>
<span>&nbsp;</span>
<span>h</span>
<span>o</span>
<span>l</span>
<span>i</span>
<span>d</span>
<span>a</span>
<span>y</span>
<span>s</span>
</div>

居中显示:

body {
margin: 0;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background: linear-gradient(pink, white, pink);
}

设置字体样式:

.container span {
display: inline-block;
color: purple;
font-weight: bold;
text-transform: uppercase;
font-size: 40px;
}

定义文字从左到右的移动效果:

.container span {
animation: sideSlide 4s forwards infinite;
transform: translateX(-100vw);
} @keyframes sideSlide {
15%, 20% {
transform: translateX(0.5em);
} 24% {
transform: translateX(0);
} 25%, 75% {
transform: translateX(0);
} 90%, 100% {
transform: translateX(100vw);
}
}

增加文字缩放的动画效果:

.container span {
transform: translateX(-100vw) scale(0);
} @keyframes sideSlide {
15%, 20% {
transform: translateX(0.5em) scale(1);
} 24% {
transform: translateX(0) scale(1.2);
} 25%, 75% {
transform: translateX(0) scale(1);
} 90%, 100% {
transform: translateX(100vw) scale(0);
}
}

增加文字入场和出场时的淡入淡出效果:

.container span {
filter: opacity(0);
} @keyframes sideSlide {
15%, 20% {
transform: translateX(0.5em) scale(1);
} 24% {
transform: translateX(0) scale(1.2);
} 25%, 75% {
transform: translateX(0) scale(1);
filter: opacity(1);
} 90%, 100% {
transform: translateX(100vw) scale(0);
filter: opacity(0);
}
}

增加文字变色的效果:

@keyframes sideSlide {
15%, 20% {
transform: translateX(0.5em) scale(1);
color: purple;
} 24% {
transform: translateX(0) scale(1.2);
color: cyan;
} 25%, 75% {
transform: translateX(0) scale(1);
filter: opacity(1);
color: purple;
} 90%, 100% {
transform: translateX(100vw) scale(0);
filter: opacity(0);
}
}

设置子元素的下标变量:

.container span:nth-child(1) { --n: 1; }
.container span:nth-child(2) { --n: 2; }
.container span:nth-child(3) { --n: 3; }
.container span:nth-child(4) { --n: 4; }
.container span:nth-child(5) { --n: 5; }
.container span:nth-child(6) { --n: 6; }
.container span:nth-child(7) { --n: 7; }
.container span:nth-child(8) { --n: 8; }
.container span:nth-child(9) { --n: 9; }
.container span:nth-child(10) { --n: 10; }
.container span:nth-child(11) { --n: 11; }
.container span:nth-child(12) { --n: 12; }
.container span:nth-child(13) { --n: 13; }
.container span:nth-child(14) { --n: 14; }

设置子元素的动画延时:

.container span {
animation-delay: calc((var(--n) - 1) * 0.05s);
}

大功告成!

前端每日实战:140# 视频演示如何用纯 CSS 创作文本的淡入动画效果的更多相关文章

  1. 前端每日实战:157# 视频演示如何用纯 CSS 创作一个棋盘错觉动画(实际上每一行都是平行的)

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/VEyoGj 可交互视频 此视频是可 ...

  2. 前端每日实战:45# 视频演示如何用纯 CSS 创作一个菱形 loader 动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/eKzjqK 可交互视频教程 此视频 ...

  3. 前端每日实战:86# 视频演示如何用纯 CSS 创作一个方块旋转动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gjgyWm 可交互视频 此视频是可 ...

  4. 前端每日实战:81# 视频演示如何用纯 CSS 创作一个变色旋转动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ejZWKL 可交互视频 此视频是可 ...

  5. 前端每日实战:42# 视频演示如何用纯 CSS 创作一个均衡器 loader 动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/oybWBy 可交互视频教程 此视频 ...

  6. 前端每日实战:21# 视频演示如何用纯 CSS 创作文本滑动特效的 UI 界面

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/QrxxaW 可交互视频教程 此视频 ...

  7. 前端每日实战:126# 视频演示如何用纯 CSS 创作小球变矩形背景的按钮悬停效果

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/yxbEzJ 可交互视频 此视频是可 ...

  8. 前端每日实战:138# 视频演示如何用纯 CSS 创作一张 iPhone 价格信息图

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/OorLGZ 可交互视频 此视频是可 ...

  9. 前端每日实战:156# 视频演示如何用纯 CSS 创作一个飞机舷窗风格的 toggle 控件

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/jeaOrw 可交互视频 此视频是可 ...

随机推荐

  1. Linux下面配置安装jmeter(1)

    一.下载安装JDK Jmeter依赖jdk环境,我们先准备jdk,查看是否安装jdk: # rpm -qa | grep jdk    或者    #Java –version 我本地已准备好了jdk ...

  2. Android SmartRefreshLayout 使用

    SmartRefreshLayout是一款实现上拉加载.下拉刷新的控件,网络上相关内容也很多,在这里简单总结下我的使用 使用SmartRefreshLayout需导入依赖:implementation ...

  3. HttpRunnerManager(一)--安装

    1.相关地址 (1)中文文档介绍:https://cn.httprunner.org/ (2)相关安装包下载地址:链接:https://pan.baidu.com/s/13SP1mFsNKrLK0sn ...

  4. 深入理解.NET Core的基元(二)

    原文:Deep-dive into .NET Core primitives, part 2: the shared framework作者:Nate McMaster译文:深入理解.NET Core ...

  5. 【HANA系列】SAP HANA XS创建XSJOB后台执行

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA XS创建XSJ ...

  6. 吴恩达机器学习(四) 使用Octave

    一.基本操作 本课程有编程作业,编程作业需要使用Matlab或Octave,本文章使用Octave.下载地址:http://www.gnu.org/software/octave/#install.安 ...

  7. 【miscellaneous】GPRS本质论

    GPRS DTU最基本的用法是:在DTU中放入一张开通GPRS功能的SIM卡,DTU上电后先注册到GPRS网络,然后通过GPRS网络和数据处理中心建立连接.这条连接涉及了无线网络运营商,因特网宽 带供 ...

  8. https原理以及golang基本实现

    关于https 背景知识 密码学的一些基本知识 大致上分为两类,基于key的加密算法与不基于key的加密算法.现在的算法基本都是基于key的,key就以一串随机数数,更换了key之后,算法还可以继续使 ...

  9. python关键字以及含义,用法

    Python常用的关键字   1.and , or and , or 为逻辑关系用语,Python具有短路逻辑,False and 返回 False 不执行后面的语句, True or 直接返回Tru ...

  10. jmeter-在beanshell里用代码提取参数

    接口返回json(response_data): { "Code":1, "Message":null, "Error":null, &qu ...