其他
【每日一练】69—CSS实现一个牛奶加载动画
今天开始我们的第69练,一个加载动画案例的实现,其实,关于加载动画的练习或者源码素材,我都在之前的文章里分享了很多,有实用型的也有好玩有趣型的,而今天这个练习,是一个好玩有趣型的加载动画练习,希望你会喜欢。
具体的效果请看下面截图:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>【每日一练】69—CSS实现一个牛奶加载动画</title>
</head>
<body>
<div class="container">
<h2>牛奶</h2>
<div class="loader">
<span style="--i:0;"></span>
<span style="--i:1;"></span>
<span style="--i:2;"></span>
<span style="--i:3;"></span>
<span style="--i:4;"></span>
<span style="--i:5;"></span>
<span style="--i:6;"></span>
<span style="--i:7;"></span>
</div>
</div>
<svg>
<filter id="gooey">
<feGaussianBlur in="SourceGraphic" stdDeviation="10" />
<feColorMatrix values="
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 20 -10"
/>
</filter>
</svg>
</body>
</html>
*
{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Oleo Script Swash Caps', cursive;
}
body
{
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: linear-gradient(45deg,#006bc6,#1ecafc);
}
.container
{
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.container h2
{
position: absolute;
color: #fff;
font-size: 1.75em;
font-weight: 500;
}
.loader
{
position: relative;
width: 300px;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
background: rgba(0,0,0,0.25);
filter: url(#gooey);
}
.loader span
{
position: absolute;
left: 0px;
transform-origin: 150px;
width: 60px;
height: 60px;
background: #fff;
border-radius: 50%;
animation: animate 5s ease-in-out infinite;
animation-delay: calc(0.15s * var(--i));
}
@keyframes animate
{
0%,10%
{
width: 100px;
height: 100px;
transform: rotate(0deg) translateX(120px);
}
40%,70%
{
width: 40px;
height: 40px;
transform: rotate(calc(360deg / 8 * var(--i)));
box-shadow: 0 0 0 10px #fff;
}
90%,100%
{
width: 100px;
height: 100px;
transform: rotate(0deg) translateX(120px);
}
}
svg
{
width: 0;
height: 0;
}
写在最后
以上就是今天【每日一练】的全部内容,希望今天的小练习对你有用,如果你觉得有帮助的话,请点赞我,关注我,并将它分享给你身边做开发的朋友,也许能够帮助到他。
我是杨小爱,我们明天见。
学习更多技能
请点击下方公众号