【动画消消乐】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.开心.游戏.算法.实现",希望对大家开发技术学习和问题解决有帮助. ...
最新文章
- 【 MATLAB 】通过不同样本数的同一个有限长序列作 DTFT 对比
- 盘点游戏行业的那些干货网站
- ZOJ 3879(大模拟)
- CF1004F Sonya and Bitwise OR
- VMWare虚拟机NAT模式下static IP
- Javascript学习总结 - JS基础系列三
- mysql设计学习_Mysql数据库设计学习
- oracle 中update select 和连接字符串配合使用
- SC命令---安装、开启、配置、关闭windows服务 bat批处理(转载)
- 【LeetCode】【数组】题号:*54,螺旋数组
- 浅谈数据结构-二叉树
- 【复习+知识补充】EL表达式:只能调用静态方法
- Atitit pwa app prblm sulo目录1.1.1. 安卓的chrome没有弹添加到桌面的弹窗 11.1.2. 如何判断是否从主屏幕访问 11.1.3. 如何监听添加到桌面事
- [并发]线程池关闭的问题
- win10家庭版升级到企业版的教程
- avr单片机动态数码管c语言,AVR单片机8位数码管显示的程序实现(两种方法介绍)...
- beego golang bootstrap-table做月度考勤(打卡、签到)统计表
- 影视后期算不算计算机类专业,影视后期是什么意思(后期剪辑属于什么专业)...
- 2016年7月的数据省市区数据
- vscode在html看到图片的插件_自从用了这款PPT插件,我才知道什么叫做高效办公!...
热门文章
- 中望3D2022 放样
- 原生javascript图片惰性延迟加载插件lazyload–兼容PC端手机端
- 《华林科纳-半导体工艺》高效硅太阳能电池
- python爬取英雄联盟所有皮肤_用Python爬取英雄联盟(lol)全部皮肤
- ffmpeg.exe的使用与环境设置
- 从一到二:利用mnist训练集生成的caffemodel对mnist测试集与自己手写的数字进行测试...
- mysql 查询汉字的全拼音以及查询各个汉字的拼音首字母
- 大话商学院番外篇(1)--人在旅途
- rust怎么在上门锁密码_rust密码锁队友怎么用 | 手游网游页游攻略大全
- Vue 2 中实现 CustomRef 方式防抖/节流