这篇文章介绍了如何使用纯CSS实现两个小球前后绕圈切换的Loading特效。这个特效可以用在网页的加载过程中,使用户等待的时间更加有趣和轻松。
实现方法
使用CSS3的@keyframes规则,通过不断改变每个小球的位置,来实现前后绕圈切换的效果。同时,使用了CSS的transform属性来控制小球的旋转和移动。
实现步骤
- 创建一个HTML文件,并在文件中添加一个div容器,用于包含两个小球。
- 使用CSS对div容器进行样式设置,使其居中并设置宽高。
- 创建两个div元素,用于表示两个小球,并对其进行样式设置,如设置宽高、边框、圆角等。
- 使用CSS3的@keyframes规则,对每个小球设置前后绕圈切换的动画效果。
- 使用CSS的transform属性,控制小球的旋转和移动。
代码实现
以下是实现该Loading特效的HTML和CSS代码:
<div class="loading">
<div></div>
<div></div>
</div>
<style>
.loading,
.loading > div {
position: relative;
box-sizing: border-box;
}
.loading {
display: block;
font-size: 0;
color: #000;
}
.loading.la-dark {
color: #333;
}
.loading > div {
display: inline-block;
float: none;
background-color: currentColor;
border: 0 solid currentColor;
}
.loading {
width: 32px;
height: 32px;
animation: ball-spin-rotate 2s infinite linear;
}
.loading > div {
position: absolute;
top: 0;
width: 60%;
height: 60%;
border-radius: 100%;
animation: ball-spin-bounce 2s infinite ease-in-out;
}
.loading > div:last-child {
top: auto;
bottom: 0;
animation-delay: -1s;
}
.loading.la-sm {
width: 16px;
height: 16px;
}
.loading.la-2x {
width: 64px;
height: 64px;
}
.loading.la-3x {
width: 96px;
height: 96px;
}
@keyframes ball-spin-rotate {
100% {
transform: rotate(360deg);
}
}
@keyframes ball-spin-bounce {
0%,
100% {
transform: scale(0);
}
50% {
transform: scale(1);
}
}
</style>