用纯CSS实现饼状Loading等待图效果

用纯CSS实现饼状Loading等待图效果

1. 引言

在网页开发中,经常会遇到需要在页面加载或进行耗时操作时,为用户显示一个Loading等待图效果。本文将介绍一种使用纯CSS来实现饼状Loading等待图的方法。

2. CSS实现饼状Loading等待图

实现饼状Loading等待图的核心是利用CSS中的旋转动画和渐变效果。首先,我们需要定义一个div容器,并设置其宽度和高度。

.loading {

width: 100px;

height: 100px;

}

然后,我们在该div容器中添加一个子元素,作为饼状Loading的主体。我们给这个子元素添加一个类名,让我们可以方便地对其进行样式设置。

<div class="loading">

<div class="pie"></div>

</div>

接下来,我们需要设置饼状Loading主体的样式。我们可以为其添加一个border-radius属性,使其变为一个圆形。

.pie {

width: 100px;

height: 100px;

border-radius: 50%;

}

接下来,我们通过设置CSS的旋转动画来实现饼状Loading的效果。我们可以通过关键帧动画来实现这个旋转效果。

@keyframes loading-rotate {

0% {

transform: rotate(0deg);

}

100% {

transform: rotate(360deg);

}

}

.pie {

animation: loading-rotate 1s linear infinite;

}

现在,我们已经实现了一个旋转的饼状Loading效果。但是,我们想要它变成一个逐渐填充的效果,即Loading进度从0%到100%的过程。

为了实现这个效果,我们可以通过设置CSS的背景渐变来模拟填充进度的效果。我们可以将饼状Loading主体的背景颜色设置为一个渐变背景,背景的颜色从透明到实心逐渐变化。

.pie {

background: linear-gradient(to right, transparent 50%, #ff0000 50%);

}

如上代码所示,我们将背景设置为一个线性渐变,渐变的方向是从左到右。在渐变中,我们将前一半设置为透明色,后一半设置为实心色。

但是,这样只会让饼状Loading变成一半实心,我们还需要通过旋转动画来使实心部分不断从0%填充到100%。

为了实现这个效果,我们需要创建一个额外的旋转动画,并通过使用animation-delay属性来控制填充进度的速度。通过设置动画延迟的时间,我们可以控制填充进度的速度。如下代码所示:

@keyframes loading-fill {

0% {

background: linear-gradient(to right, transparent 50%, #ff0000 50%);

}

50% {

background: linear-gradient(to right, #ff0000 50%, #ff0000 50%);

}

100% {

background: linear-gradient(to right, #ff0000 100%, #ff0000 100%);

}

}

.pie {

animation: loading-rotate 1s linear infinite,

loading-fill 2s ease-in-out infinite;

animation-delay: -1s;

}

上述代码中,我们定义了一个名为loading-fill的新动画,并将其与loading-rotate动画组合使用。通过修改background的值,我们可以控制饼状Loading的填充进度。

现在,我们已经成功地实现了一个使用纯CSS实现的饼状Loading等待图效果。

3. 总结

本文介绍了使用纯CSS实现饼状Loading等待图的方法。通过利用CSS的旋转动画和渐变效果,我们可以轻松地实现一个饼状Loading效果。这个方法不需要使用额外的JavaScript代码,只需使用CSS即可实现。

这种纯CSS实现的饼状Loading等待图效果可以用于各种网页开发中,为用户提供更好的视觉体验。希望本文对你有所帮助。