Bootstrap4 加载效果

加载效果的重要性

加载效果是现代Web应用中的重要组成部分,它们能够:

  • 向用户反馈系统正在处理中
  • 改善用户体验,减少等待时的焦虑感
  • 增强应用的现代感和专业性

Bootstrap 4 Spinner组件

Bootstrap 4 引入了Spinner组件,用于表示加载状态。它们使用纯CSS构建,不需要额外的JavaScript。

基本Spinner

使用 .spinner-border 类创建旋转的圆圈spinner:

加载中...
默认
加载中...
Primary
加载中...
Success
加载中...
Danger
<div class="spinner-border" role="status">
  <span class="sr-only">加载中...</span>
</div>

<div class="spinner-border text-primary" role="status">
  <span class="sr-only">加载中...</span>
</div>

<div class="spinner-border text-success" role="status">
  <span class="sr-only">加载中...</span>
</div>
不同大小的Spinner

使用 .spinner-border-sm 创建小尺寸spinner,或通过CSS自定义尺寸:

加载中...
小尺寸
加载中...
自定义大尺寸
<!-- 小尺寸 -->
<div class="spinner-border spinner-border-sm" role="status">
  <span class="sr-only">加载中...</span>
</div>

<!-- 自定义大尺寸 -->
<div class="spinner-border" style="width: 3rem; height: 3rem;" role="status">
  <span class="sr-only">加载中...</span>
</div>
生长式Spinner

使用 .spinner-grow 类创建脉动效果的spinner:

加载中...
默认
加载中...
Primary
加载中...
Success
加载中...
Danger
<div class="spinner-grow" role="status">
  <span class="sr-only">加载中...</span>
</div>

<div class="spinner-grow text-primary" role="status">
  <span class="sr-only">加载中...</span>
</div>

<div class="spinner-grow text-success" role="status">
  <span class="sr-only">加载中...</span>
</div>

按钮中的加载状态

将Spinner与按钮结合使用,创建加载状态的按钮:

示例:按钮加载状态

点击按钮查看加载效果:

<button class="btn btn-primary btn-loading" id="btnLoading">
  <span class="btn-text">提交表单</span>
  <div class="spinner-border spinner-border-sm" role="status">
    <span class="sr-only">加载中...</span>
  </div>
</button>

<script>
document.getElementById('btnLoading').addEventListener('click', function() {
  this.classList.add('loading');
  setTimeout(() => {
    this.classList.remove('loading');
  }, 3000);
});
</script>

页面加载效果

创建全屏加载效果,适用于页面初始化或内容加载:

示例:页面加载覆盖层

点击按钮查看全屏加载效果:

<!-- 加载覆盖层 -->
<div class="loading-overlay" id="pageLoader">
  <div class="loading-content">
    <div class="spinner-border text-primary" style="width: 3rem; height: 3rem;" role="status">
      <span class="sr-only">加载中...</span>
    </div>
    <h4 class="mt-3">页面加载中...</h4>
  </div>
</div>

<script>
document.getElementById('showPageLoader').addEventListener('click', function() {
  document.getElementById('pageLoader').classList.add('show');
  setTimeout(() => {
    document.getElementById('pageLoader').classList.remove('show');
  }, 3000);
});
</script>

自定义加载动画

除了Bootstrap自带的Spinner,您还可以创建自定义加载动画:

自定义旋转动画
自定义旋转
脉动效果
跳动圆点
<!-- 自定义旋转动画 -->
<style>
.custom-spinner {
  width: 50px;
  height: 50px;
  border: 5px solid #f3f3f3;
  border-top: 5px solid #6f42c1;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
</style>

<div class="custom-spinner"></div>

最佳实践

使用加载效果的建议
  • 保持简洁 - 加载效果应该简单明了,不要过于复杂
  • 提供反馈 - 确保用户知道发生了什么,而不仅仅是等待
  • 考虑可访问性 - 使用 sr-only 类为屏幕阅读器提供文本说明
  • 适度使用 - 不要过度使用加载效果,只在必要时显示
  • 保持一致性 - 在整个应用中使用一致的加载效果

学习完成!

您已经学会了Bootstrap 4中的各种加载效果实现方法。现在可以尝试在自己的项目中使用这些技术了。

继续学习下一章:Bootstrap 4 表格