【动画消消乐】HTML+CSS 白云飘动效果 072
前言
Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~)
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
【动画消消乐】 平时学习生活比较枯燥,无意之间对一些网页、应用程序的过渡/加载动画产生了浓厚的兴趣,想知道具体是如何实现的? 便在空闲的时候学习下如何使用css实现一些简单的动画效果,文章仅供作为自己的学习笔记,记录学习生活,争取理解动画的原理,多多“消灭”动画!
效果展示
Demo代码
HTML
<!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
html, body {margin: 0;height: 100%;
}body {display: flex;justify-content: center;align-items: center;background: #93b5cf;
}section {width: 650px;height: 300px;padding: 10px;position: relative;display: flex;align-items: center;justify-content: center;border: 2px solid white;
}span {position: relative;animation: cloud 5s ease-in-out infinite;background: white;border-radius: 50%;box-shadow: white 65px -15px 0 -4px, white 25px -25px, white 30px 10px, white 60px 15px 0 -10px, white 85px 5px 0 -5px;height: 50px;width: 50px;margin-left: -60px;
}span:after {animation: cloud_shadow 5s ease-in-out infinite;background: black;border-radius: 50%;content: '';height: 15px;width: 120px;opacity: 0.2;position: absolute;left: 5px;bottom: -60px;
}@keyframes cloud {50% {transform: translateY(-20px);}
}@keyframes cloud_shadow {50% {transform: translateY(0px) scale(.7);opacity: .05;}
}
原理详解
步骤1
使用span标签,设置为
- 相对定位
- 宽度、高度均为50px
- 背景色:白色
span {background: white;height: 50px;width: 50px;position: relative;
}
效果图如下
步骤2
利用box-shadow属性,为span添加5个阴影
box-shadow: red 65px -15px 0 -4px, /*阴影1*/orange 25px -25px, /*阴影2*/yellow 30px 10px, /*阴影3*/green 60px 15px 0 -10px, /*阴影4*/blue 85px 5px 0 -5px; /*阴影5*/
效果图如下
步骤3
span圆角化
span {border-radius: 50%;
}
效果图如下
步骤4
将5个阴影的颜色都修改为白色
box-shadow: white 65px -15px 0 -4px, /*阴影1*/white 25px -25px, /*阴影2*/white 30px 10px, /*阴影3*/white 60px 15px 0 -10px, /*阴影4*/white 85px 5px 0 -5px; /*阴影5*/
效果图如下
步骤5
将span左移60px
span {margin-left: -60px;
}
得到一朵小白云
步骤6
为span添加动画
动画效果描述为:白云上下移动
使用translateY属性对span进行y轴(竖直方向)的上下移动
- 初始(0%):原位置
- 中间(50%):向上移动20px
- 末尾(100%):原位置
animation动画代码为:
animation: cloud 5s ease-in-out infinite;
@keyframes cloud {/*忽略0% 100% 因为span需要回到原位置*/50% {transform: translateY(-20px);}
}
效果图如下
步骤7
使用span::after伪元素充当白云的阴影,设置为
- 绝对定位( left: 5px bottom: -60px)
- 高度15px 宽度120px
- 背景色:黑色
- 颜色透明度:0.2
span:after {background: black;content: '';height: 15px;width: 120px;opacity: 0.2;position: absolute;left: 5px;bottom: -60px;
}
效果图如下
步骤8
span::after圆角化
span:after {border-radius: 50%;
}
效果图如下
步骤9
为span::after添加动画
效果
- 当白云向上移动,阴影变小,颜色变浅;
- 向下移动,阴影变大,颜色变深
span:after {animation: cloud_shadow 5s ease-in-out infinite;
}
@keyframes cloud_shadow {50% {transform: translateY(20px) scale(.7);opacity: .05;}
}
最终效果图如下
注意:从效果图中可以发现,其实阴影部分只是大小、颜色深度在发生变化,其位置是没有发生变化的。这是因为span动画中50%时刻,span执行translateY(-20px),倘若span::after没有执行translateY(20px),那么span::after将一起移动20px。(这里本质就是两个效果相抵消;了,所以span::after的位置没有发生变化)
如果span::after没有设置translateY(20px)
那么就会出现下面的效果:阴影上下也在移动
结语
文章仅作为学习笔记,记录从0到1的一个过程
希望对您有所帮助,如有错误欢迎小伙伴指正~
我是海轰ଘ(੭ˊᵕˋ)੭,如果您觉得写得可以的话,请点个赞吧
谢谢支持❤️
【动画消消乐】HTML+CSS 白云飘动效果 072相关推荐
- html白云飘动效果特效代码,css3实现简单的白云飘动背景特效
这是一款非常简单的纯CSS3白云飘动背景特效.该白云飘动特效使用CSS animation动画来控制不同的白云,以不同的速度进行运动,形成白云飘动的效果. HTML结构 该白云飘动特效的HTML结果非 ...
- html白云飘动效果特效代码,css3实现简单的白云飘动背景特效代码示例
本篇文章小编给大家分享一下css3实现简单的白云飘动背景特效代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 这是一款非常简单的纯CSS3白云飘 ...
- 【动画消消乐】纯CSS绘制一朵白云 071
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- 【动画消消乐 】HTML+CSS 吃豆豆动画 073
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- 【动画消消乐】HTML+CSS 自定义加载动画 068
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- 【动画消消乐|CSS】086.炫酷水波浪Loading过渡动画
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- 【动画消消乐】HTML+CSS 自定义加载动画 064(currentColor的妙用!)
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专 ...
- 【动画消消乐】HTML+CSS 自定义加载动画 065
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- java开心消消乐代码_Vue实现开心消消乐游戏算法
摘要:这篇Vue栏目下的"Vue实现开心消消乐游戏算法",介绍的技术点是"开心消消乐.Vue.开心.游戏.算法.实现",希望对大家开发技术学习和问题解决有帮助. ...
最新文章
- 【错误记录】PyCharm 运行 Python 程序报错 ( PEP 8: E402 module level import not at top of file )
- 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
- Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)
- Linux内存管理初探
- Script:Generate A DDL Script For A Table
- 研究:打乒乓球可预防近视
- 解决js跨域使用nginx配置问题
- Java并发编程:线程的基本状态
- Ansible 学习总结(6)—— Ansible 19个常用模块使用示例
- Excel2021 如何将左侧A列数据填B列空白处A列数据合并到B列
- 万用表二极管档位点亮发光二极管LED
- 如何用 ISO 镜像制作 U 盘安装盘(通用方法、无需 WinPE)
- 聪明的kk nyoj 171
- [割点问题]HOJ 12307 Disconnected Pair
- left join一对多只保留一条结果的解决方法
- 测试中的指数爆炸问题
- Activiti 从入门到精通
- 程序人生——苏嵌第三天
- 遗传算法工具箱Optimization
- 又出事了?网站被攻击了?高中生?