Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【动画消消乐|CSS】084.单span标签实现自定义简易过渡动画

【动画消消乐|CSS】084.单span标签实现自定义简易过渡动画

作者头像
海轰Pro
发布于 2021-08-18 08:03:49
发布于 2021-08-18 08:03:49
50000
代码可运行
举报
运行总次数:0
代码可运行

前言

Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~) 学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语! 【动画消消乐】 平时学习生活比较枯燥,无意之间对一些网页、应用程序的过渡/加载动画产生了浓厚的兴趣,想知道具体是如何实现的? 便在空闲的时候学习下如何使用css实现一些简单的动画效果,文章仅供作为自己的学习笔记,记录学习生活,争取理解动画的原理,多多“消灭”动画!

效果展示

Demo代码

HTML

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">

    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="style.css">
        <title>Document</title>
    </head>

    <body>
        <section><span></span></section>
    </body>

</html>

CSS

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
html, body {
  margin: 0;
  height: 100%;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  background: #222f3e;
}

section {
  width: 650px;
  height: 300px;
  padding: 10px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid white;
}

span {
  width: 0;
  height: 5px;
  display: inline-block;
  position: relative;
  background: white;
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
  animation: loading 8s linear infinite;
}

span::before, span::after {
  content: '';
  width: 10px;
  height: 1px;
  background: white;
  position: absolute;
  top: 9px;
  right: -2px;
  opacity: 0;
  transform: rotate(-45deg) translateX(0px);
  animation: item_1 0.3s linear infinite;
}

span::after {
  top: -4px;
  transform: rotate(45deg);
  animation: item_2 0.3s linear infinite;
}

@keyframes loading {
  0% {
    width: 0
  }
  100% {
    width: 100%
  }
}

@keyframes item_1 {
  0% {
    transform: rotate(-45deg) translateX(0px);
    opacity: 0.7;
  }
  100% {
    transform: rotate(-45deg) translateX(-45px);
    opacity: 0;
  }
}

@keyframes item_2 {
  0% {
    transform: rotate(45deg) translateX(0px);
    opacity: 1;
  }
  100% {
    transform: rotate(45deg) translateX(-45px);
    opacity: 0.7;
  }
}

原理详解

步骤1

使用一个span标签

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<span></span>

设置为

  • 相对定位
  • 宽度为100px (初始宽度不重要 这里为了显示设置为100px demo是0 )
  • 高度为5px
  • 背景色:白色
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  span {
	width: 100px;
	height: 5px;
	display: inline-block;
	position: relative;
	background: white;
  }

效果图如下

步骤2

为span添加一个阴影

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  span {
	box-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
  }

span四周稍微有点亮光

步骤3

使用span::before、span::after

同时设置为

  • 绝对定位( top: 9px; right: -2px;)
  • 宽度10px 高度1px
  • 背景色:白色
  • 透明级别:1
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   span::before, span::after {
	content: '';
	width: 10px;
	height: 1px;
	background: white;
	position: absolute;
	top: 9px;
	right: -2px;
	opacity: 1;/*这里为了显示设置为1 demo里为0 都不影响后面效果*/
  }

效果图如下

步骤4

旋转span::before、span::after

旋转-45度

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  span::before, span::after {
	transform: rotate(-45deg) translateX(0px);
  }

效果图如下

步骤5

为span::before、span::after添加动画

使其在-45度方向线性移动 同时透明级别随之改变

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
   span::before, span::after {
	animation: item_1 0.3s linear infinite;
  }
  @keyframes  item_1{
	0% {
	  transform: rotate(-45deg) translateX(0px);
	  opacity: 0.7;
	}
	100% {
	  transform: rotate(-45deg) translateX(-45px);
	  opacity: 0;
	}
  }

效果图如下

步骤6

分离before和after

使after位于span上方,与before对称

需要改变旋转角度、位置和动画效果

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  span::after {
	top: -4px;
	transform: rotate(45deg);
	animation: item_2 0.3s linear infinite;
  } 
    @keyframes item_2 {
	0% {
	  transform: rotate(45deg) translateX(0px);
	  opacity: 1;
	}
	100% {
	  transform: rotate(45deg) translateX(-45px);
	  opacity: 0.7;
	}
  }

效果图如下

步骤7

最后单独为span添加一个动画

效果很简单

只需要宽度随之时间而慢慢变长即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  span {
	animation: loading 8s linear infinite;
  } 
 
  @keyframes loading {
	0% {
	  width: 0
	}
	100% {
	  width: 100%
	}
  }

得到最终效果

结语

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-08-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【动画消消乐|CSS】080.单span标签实现自定义简易过渡动画
在最右端时 left: 100%; transform: translateX(-100%)
海轰Pro
2021/08/10
5010
【动画消消乐|CSS】081.单span标签实现自定义简易过渡动画
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~) 学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语! 【动画消消乐】 平时学习生活比较枯燥,无意之间对一些网页、应用程序的过渡/加载动画产生了浓厚的兴趣,想知道具体是如何实现的?
海轰Pro
2021/08/18
4820
【动画消消乐|CSS】081.单span标签实现自定义简易过渡动画
【动画消消乐|CSS】 单span标签实现自定义简易过渡动画 076
首先span是海轰事先设置一直位于整个容器正中的,如果只有left: 50%;,说明before、after在横轴方向一直是相对于span最左端移动了相对于span自身50%的距离,无论span宽度怎么变化,它的50%一直都是在中间,所以before、after最左端相当于固定了
海轰Pro
2021/08/06
5800
【动画消消乐|CSS】调皮逃跑的小方块 077
注:border-bottom-right-radius: 40px;是指设置右下角radius为40px
海轰Pro
2021/08/10
4500
【动画消消乐|CSS】082.单span标签实现自定义简易过渡动画
注:span::after宽度为0 其实是看不到这个白色部分的。这里海轰只是为了显示出after的位置将其宽度设置为10px 便于确定其位置
海轰Pro
2021/08/18
3430
【动画消消乐|CSS】082.单span标签实现自定义简易过渡动画
【动画消消乐 】HTML+CSS 吃豆豆动画 073
文章仅作为学习笔记,记录从0到1的一个过程。希望对您有所帮助,如有错误欢迎小伙伴指正~
海轰Pro
2021/08/05
8470
【CSS进阶】巧用伪元素before和after制作绚丽效果
原创:叫我詹躲躲 来源:掘金 链接:巧用伪元素before和after制作绚丽效果
微芒不朽
2022/09/06
1.7K0
【CSS进阶】巧用伪元素before和after制作绚丽效果
纯css实现117个Loading效果(中)
这是我这几十年间从世界各地寻觅到的 Loading特效,合计117个(本文贴出第40-78个),而且是 纯CSS 制作的。
德育处主任
2022/04/17
1.4K0
纯css实现117个Loading效果(中)
【动画消消乐|CSS】079.单span标签实现自定义简易过渡动画
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~) 学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语! 【动画消消乐】 平时学习生活比较枯燥,无意之间对一些网页、应用程序的过渡/加载动画产生了浓厚的兴趣,想知道具体是如何实现的?
海轰Pro
2021/08/10
4430
【动画消消乐】HTML+CSS 自定义加载动画 056
利用span::before和span::after伪元素充当span里面的白色/红色小方框
海轰Pro
2021/07/20
7270
【动画消消乐】HTML+CSS 自定义加载动画 056
【程序员装B系列】八种CSS3按钮动画特效
这是一款CSS3按钮动画特效。在该特效中,提供了八种按钮动画特效。每种特效在鼠标悬停到按钮上面的时候,都会触发按钮动画。
用户5997198
2019/09/19
1.2K0
【程序员装B系列】八种CSS3按钮动画特效
【动画消消乐|CSS】086.炫酷水波浪Loading过渡动画
这里使用两个div,一个为circle类,一个为wave类,分别代表容器和wave
海轰Pro
2021/08/20
9060
【动画消消乐|CSS】085.HTML+CSS实现自定义简易过渡动画
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~) 学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语! 【动画消消乐】 平时学习生活比较枯燥,无意之间对一些网页、应用程序的过渡/加载动画产生了浓厚的兴趣,想知道具体是如何实现的?
海轰Pro
2021/08/20
4350
每日分享html特效篇之一个菜单栏、一个渐变背景、一个加载特效、七个导航栏特效
1.前端工程师主要利用HMTL与CSS建构页面(其中html构建骨架,css构建样式),用JavaScript获取后端数据以及完善交互以及用户体验。 2.通俗来讲,前端在一个项目里,拿到UI设计师设计的设计稿,然后实现UI设计师设计稿,调用后端程序员给的数据接口以获取数据,然后测试,最后部署上线。 3.前端可以对设计图负责,大部分情况下,不需要特别的去理解业务逻辑,因为我们90后都是玩着十几年手机电脑长大的,十几年的经验足够我们在潜意识里想明白应该怎么做,怎么去一步步实现,会有什么意外情况。 4.我感觉前端发展有个很大的缺陷----晋升问题. 正如第三点所言,作为领导必须对项目有足够的了解,显然是要重点包括业务逻辑,这点上,后端开发者需要涉及数据库逻辑,是必须要跟业务逻辑打交道的(重中之重),因此,大部分的领导岗位都是后端开发者更有晋升的机会。当然,个别公司有专门的前端组长(这也不算什么),如果说前端开发者在自己工作范围之外还要腾出时间去研究业务逻辑,属实是觉得出力不讨好(因为这样的操作需要持续很久才能看出效果),而且再怎么研究业务逻辑也不会比每时每刻跟业务逻辑打交道的后端开发者了解更多。说实在的,大部分情况下,前端在配合后端进行开发.后端需要了解业务逻辑,要跟领导和客户商量细节,露脸机会很大,在老板面前刷脸次数众多。这些都是拉开前后端程序员晋升机会差距的因素。
淼学派对
2022/11/20
2.4K0
每日分享html特效篇之一个菜单栏、一个渐变背景、一个加载特效、七个导航栏特效
用coding向你最爱的人说圣诞快乐
文章目录 圣诞节的起源 圣诞祝福语 用 coding 说圣诞快乐 Canvas 渲染 圣诞树特效 唯美圣诞树 CSS实现圣诞树 简易的圣诞树 线性树 卡片圣诞树 🎄🎄🎄圣诞节即将到来,今天让我们用编码的方式向你最爱的人表达圣诞节快乐 圣诞节的起源  圣诞节源自古罗马人迎接新年的农神节,与基督教本无关系。在基督教盛行罗马帝国后,教廷将这种民俗节日纳入基督教体系,同时以庆祝耶稣的降生。但在圣诞节这天不是耶稣的生辰,因为《圣经》未记载耶稣具体出生时间,同样没提到过有此种节日,是基督教吸收了古罗马神话的结
鱼找水需要时间
2023/02/16
3910
用coding向你最爱的人说圣诞快乐
订单确认按钮动画
阿超
2024/03/12
910
【动画消消乐】HTML+CSS 自定义加载动画 062
为span::before添加动画,利用span::before的四个阴影(box-shadow)实现
海轰Pro
2021/07/23
4770
【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)
注:这里为了视觉显示区分四个阴影,每个阴影采用了不同的颜色,在实际中其实每个阴影都设置为白色。
海轰Pro
2021/07/28
8560
【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)
css3动画从入门到精通
什么是css3动画? 通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片、Flash 动画以及 JavaScript。 CSS3带来了圆角,半透明,阴影,渐变,多背景图等新的特征,轻松实
xiangzhihong
2018/02/05
2.5K0
css3动画从入门到精通
纯css实现117个Loading效果(下)
这是我这几十年间从世界各地寻觅到的 Loading特效,合计117个(本文贴出第79-117个),而且是 纯CSS 制作的。
德育处主任
2022/04/17
1.1K0
纯css实现117个Loading效果(下)
推荐阅读
相关推荐
【动画消消乐|CSS】080.单span标签实现自定义简易过渡动画
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验