返回

技术赋能:无需进度条的无进度等待组件

前端

在前端开发中,我们会遇到各种各样的需求,比如在异步请求的过程中,我们需要在页面上呈现一个等待效果。最常见的做法是显示一个圆圈在转,旁边有一个数字实时变化,显示进度的百分比。

这种方案虽然简单易用,但是在某些场景下却并不适用。比如当异步请求的处理时间很短的时候,这种进度条就显得多余了。或者当异步请求的处理时间很长的时候,这种进度条又显得太慢了。

为了解决这个问题,我们可以使用一种新的等待组件——无进度等待组件。无进度等待组件不需要显示进度的百分比,而是通过其他方式来提示用户正在等待。

无进度等待组件的实现原理很简单,就是利用了CSS的动画效果。我们可以在页面上创建一个div元素,然后给它添加一个动画效果。当异步请求开始时,我们就让这个div元素开始动画,当异步请求结束时,我们就让这个div元素停止动画。

无进度等待组件的优势在于它可以非常灵活地使用。我们可以根据不同的场景,来选择不同的动画效果。比如在异步请求处理时间很短的时候,我们可以使用一个简单的旋转动画。在异步请求处理时间很长的时候,我们可以使用一个更复杂的动画,比如一个加载条。

无进度等待组件的应用场景也非常广泛。它可以用于各种各样的异步请求场景,比如页面加载、数据加载、文件上传等。

无进度等待组件是一种非常实用的前端组件,它可以帮助我们解决异步请求过程中等待效果的需求。无进度等待组件的实现原理简单,使用灵活,应用场景广泛,是前端开发人员必备的组件之一。

以下是无进度等待组件的具体实现代码:

<div id="loading">
  <div class="spinner">
    <div class="double-bounce1"></div>
    <div class="double-bounce2"></div>
  </div>
</div>
#loading {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: #fff;
  z-index: 999;
}

.spinner {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.double-bounce1,
.double-bounce2 {
  width: 20px;
  height: 20px;
  background-color: #000;
  border-radius: 50%;
  animation: double-bounce 2.0s infinite ease-in-out;
}

.double-bounce1 {
  animation-delay: -0.5s;
}

@keyframes double-bounce {
  0%,
  100% {
    transform: scale(0);
  }

  50% {
    transform: scale(1);
  }
}
// 在异步请求开始时,显示加载动画
document.getElementById('loading').style.display = 'block';

// 在异步请求结束时,隐藏加载动画
document.getElementById('loading').style.display = 'none';

希望本文能够对您有所帮助。如果您有任何问题,欢迎随时与我联系。