[100天挑战100个前端效果]第九天---小球滑动效果(完美还原牛顿第一定律!)
作者:互联网
小球滑动效果
让我们先来看看实现的效果
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">
<title>第九天</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="fence"></div>
<div class="fence"></div>
<div class="fence"></div>
<div class="fence"></div>
<div class="fence"></div>
<div class="fence"></div>
<div class="fence"></div>
<div class="fence"></div>
<div class="circle"></div>
</div>
</body>
</html>
css代码
:root{
--background-color: #3c3d41;
--border-color:rgb(149, 181, 226);
--color1: rgb(238, 92, 92);
--color2: rgb(224, 110, 177);
--color3: rgb(86, 88, 212);
--color4: #00b894;
--color5: #fdcb6e;
--color6: #e056fd;
--color7: #f97f51;
--color8: #bdc581;
}
*{
margin: 0;
padding: 0;
}
html{
font-size: 14px;
}
body{
width: 100vw;
height: 100vh;
background-color: var(--background-color);
display: flex;
justify-content: center;
align-items: center;
}
.container{
position: relative;
width: 300px;
height: 200px;
/* background-color: var(--border-color); */
display: flex;
justify-content: space-around;
align-items: center;
overflow: hidden;
}
.container .fence{
height: 100%;
width: 20px;
border-radius: 20px;
}
.container .fence:nth-child(1){background-color:var(--color1);}
.container .fence:nth-child(2){background-color:var(--color2);}
.container .fence:nth-child(3){background-color:var(--color3);}
.container .fence:nth-child(4){background-color:var(--color4);}
.container .fence:nth-child(5){background-color:var(--color5);}
.container .fence:nth-child(6){background-color:var(--color6);}
.container .fence:nth-child(7){background-color:var(--color7);}
.container .fence:nth-child(8){background-color:var(--color8);}
.container .circle{
position: absolute;
width: 400px;
height: 400px;
background-color:var(--background-color);
border-radius: 100%;
top: -130%;
transform: rotate(45deg);
/* alternate实现求方向执行动画; */
animation: flow 2s ease-in-out infinite alternate;
}
.container .circle::after{
position: absolute;
content: "";
width: 30px;
height: 30px;
background-color: #fff;
opacity: 0.5;
bottom: 2px;
left: 50%;
transform: translate(-50%,0);
border-radius: 100%;
}
@keyframes flow{
0%{
transform: rotate(45deg);
}
100%{
transform: rotate(-45deg);
}
}
今日份知识总结
今日没有用要什么新知识,但是效果是很秀的吧!
有个地方调的比较久,就是那个
小球的滑动是circle的一个bottom(radius=100%后变成了小球)
然后那个circle在后面调成背景色后(我们不想看见大球,就是circle嘛)
出现了两个背景色叠加成为了新的颜色的情况,而且,这个颜色也没有覆盖掉后面彩色柱子的颜色。
试了z-index赋值等,和position absolute都没有调好,
最后是改变了背景的颜色才成功覆盖后面彩色柱子的颜色。并且覆盖住后也没有出现叠色现象了!
标签 | 作用 |
---|---|
alternate | 实现求方向执行动画 |
translate(-50%,0) | x方向居中 |
标签:第九天,container,fence,color,---,--,background,var,100 来源: https://blog.csdn.net/qq_42136832/article/details/115283718