CSS100Day(4)-利用关键帧三圆嵌套动画

582 字
3 分钟
CSS100Day(4)-利用关键帧三圆嵌套动画

写前声明#

以后简单效果仅贴代码

设计简介#

三个圆利用scale、box-shadow和贝塞尔曲线ease-in-out制造交替变大变小的感觉

  • animation-fill-mode: forwards表示动画结束元素保持动画最后一帧
  • animation-fill-mode: backwords表示延迟前使用第一帧

效果展示#

实现代码和步骤#

HTML部分#

<div class="frame">
<div class="container">
<div class="dot-1"></div>
<div class="dot-2"></div>
<div class="dot-3"></div>
</div>
</div>

CSS部分#

  • 关键1:不同关键帧的开始动的顺序不同0%,70%最后动、0%,10%最开始动
  • 关键2:以前理解错误了,box-shadow第三个值是模糊半径,第四个值才是扩散大小
:root {
--bezier: cubic-bezier(0.21, 0.98, 0.6, 0.99);
--bg-color: #e56262;
}
.frame {
display: grid;
place-content: center;
}
.container {
position: relative;
width: 400px;
height: 400px;
border-radius: 2px;
box-shadow: 1px 2px 10px 0px rgba(0, 0, 0, 0.3);
background-color: var(--bg-color);
}
.dot-1,
.dot-2,
.dot-3 {
position: absolute;
top: 50%;
left: 50%;
translate: -50% -50%;
animation-fill-mode: both;
background-color: #fff;
border-radius: 50%;
}
.dot-1 {
width: 30px;
height: 30px;
z-index: 3;
animation: jump1 2s var(--bezier) infinite alternate forwards;
}
.dot-2 {
width: 60px;
height: 60px;
z-index: 2;
animation: jump2 2s var(--bezier) infinite alternate forwards;
}
.dot-3 {
width: 90px;
height: 90px;
z-index: 1;
animation: jump3 2s var(--bezier) infinite alternate forwards;
}
@keyframes jump1 {
0%,
70% {
box-shadow: 2px 2px 3px 2px rgba(0, 0, 0, 0.2);
scale: 0;
}
100% {
box-shadow: 10px 10px 15px 2px rgba(0, 0, 0, 0.3);
scale: 1;
}
}
@keyframes jump2 {
0%,
40% {
box-shadow: 2px 2px 3px 2px rgba(0, 0, 0, 0.2);
scale: 0;
}
100% {
box-shadow: 10px 10px 15px 2px rgba(0, 0, 0, 0.3);
scale: 1;
}
}
@keyframes jump3 {
0%,
10% {
box-shadow: 2px 2px 3px 2px rgba(0, 0, 0, 0.2);
scale: 0;
}
100% {
box-shadow: 10px 10px 15px 2px rgba(0, 0, 0, 0.3);
scale: 1;
}
}
分享给其他人
如果该文章对您有帮助,欢迎分享给其他人阅读!
复制链接

评论区

图片
犟哟
Hello, I'm Juyial.
公告
欢迎来到我的博客,在这里可以一起进步,一起学习!2026年起航!
分类
站点统计
文章
20
分类
1
标签
3
总字数
37,015
运行时长
0
最后活动
0 天前

目录