CSS 实现楼梯与小球动画
效果展示
CSS 知识点
- CSS动画使用
- transform属性使用
页面整体布局
<div class="window">
<div class="stair">
<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>
<span style="--i: 8"></span>
<span style="--i: 9"></span>
<span style="--i: 10"></span>
</div>
</div>
实现整体容器样式
.window {
position: relative;
width: 340px;
height: 480px;
background: #fff;
border-radius: 170px;
border: 4px solid #114b64;
box-shadow: 0 0 0 12px #fff;
overflow: hidden;
}
.window .stair {
position: absolute;
width: 100%;
right: calc(-100% + 0px);
top: 100px;
animation: stairs 1s linear infinite; // 动画部分
}
.window .stair span {
position: absolute;
top: calc(var(--i) * 40px);
right: calc(var(--i) * 40px);
width: 100%;
min-height: 40px;
background: #114b64;
border-bottom: 4px solid #fff;
border-top-left-radius: 4px;
}
实现楼梯动画
@keyframes stairs {
0% {
transform: translateX(0) translateY(0);
}
100% {
transform: translateX(40px) translateY(-40px);
}
}
实现小球
.window::after {
content: "";
position: absolute;
top: 190px;
left: calc(50% + 45px);
width: 30px;
height: 30px;
border-radius: 50%;
background: #f44336;
animation: bounce 1s ease-in-out infinite;
}
实现小球动画
@keyframes bounce {
0%,
100% {
transform: translateY(-1px);
}
50% {
transform: translateY(-40px);
}
}
完整代码下载
完整代码下载