当前位置: 首页 > article >正文

使用CSS实现一个加载的进度条

文章目录

  • 使用CSS实现一个加载的进度条
    • 一、引言
    • 二、步骤一:HTML结构与CSS基础样式
      • 1、HTML结构
      • 2、CSS基础样式
    • 三、步骤二:添加动画效果
      • 1、使用CSS动画
      • 2、结合JavaScript控制动画
    • 四、使用示例
    • 五、总结

使用CSS实现一个加载的进度条

在这里插入图片描述

一、引言

在现代网页设计中,加载速度对用户体验至关重要。为了提升用户体验,加载进度条成为了一个常见的交互元素。它不仅能告知用户页面加载的进度,还能减少用户等待时的焦虑感。本文将详细介绍如何使用纯CSS实现一个简单的加载进度条,并结合动画效果使其更具吸引力。

二、步骤一:HTML结构与CSS基础样式

1、HTML结构

首先,我们需要在HTML中创建一个用于显示进度条的容器。通常,这个容器是一个div元素,内部包含一个用于表示进度条的span元素。

<div id="progress">
  <span></span>
</div>

2、CSS基础样式

接下来,我们为进度条添加基础样式。设置容器的宽度、高度、边框和圆角,并为进度条部分设置背景颜色。

#progress {
  width: 50%;
  height: 20px;
  border: 1px solid #ccc;
  border-radius: 10px;
  overflow: hidden;
  margin: 50px auto;
}

#progress span {
  display: block;
  height: 100%;
  width: 0;
  background-color: #2989d8;
  transition: width 0.5s ease;
}

三、步骤二:添加动画效果

1、使用CSS动画

为了使进度条具有动态加载的效果,我们可以使用CSS的@keyframes规则来定义一个动画。这个动画将使进度条的宽度从0%逐渐增加到100%。

@keyframes progress {
  0% {
    width: 0;
  }
  100% {
    width: 100%;
  }
}

#progress span {
  animation: progress 2s infinite;
}

2、结合JavaScript控制动画

虽然CSS动画可以实现进度条的动态效果,但实际应用中,我们通常需要根据页面加载的真实进度来更新进度条。这时,可以使用JavaScript来动态调整进度条的宽度。

let progressBar = document.querySelector('#progress span');
let progress = 0;

function updateProgress() {
  if (progress < 100) {
    progress += 10;
    progressBar.style.width = progress + '%';
    setTimeout(updateProgress, 500);
  }
}

updateProgress();

四、使用示例

以下是一个完整的示例,展示了如何结合HTML、CSS和JavaScript实现一个动态加载的进度条。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS加载进度条</title>
  <style>
    #progress {
      width: 50%;
      height: 20px;
      border: 1px solid #ccc;
      border-radius: 10px;
      overflow: hidden;
      margin: 50px auto;
    }

    #progress span {
      display: block;
      height: 100%;
      width: 0;
      background-color: #2989d8;
      transition: width 0.5s ease;
    }

    @keyframes progress {
      0% {
        width: 0;
      }
      100% {
        width: 100%;
      }
    }
  </style>
</head>
<body>
  <div id="progress">
    <span></span>
  </div>

  <script>
    let progressBar = document.querySelector('#progress span');
    let progress = 0;

    function updateProgress() {
      if (progress < 100) {
        progress += 10;
        progressBar.style.width = progress + '%';
        setTimeout(updateProgress, 500);
      }
    }

    updateProgress();
  </script>
</body>
</html>

五、总结

通过本文的介绍,我们学习了如何使用CSS和JavaScript实现一个简单的加载进度条。CSS提供了丰富的动画功能,而JavaScript则可以帮助我们根据实际加载进度动态更新进度条。这种组合不仅提升了用户体验,还使页面加载过程更加直观。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • CSS实现进度条和订单进度条的示例
  • CSS3实现页面加载进度条

http://www.kler.cn/a/524314.html

相关文章:

  • [论文总结] 深度学习在农业领域应用论文笔记14
  • 【Julia】Julia预编译与外部库:从崩溃到完美集成
  • 【go语言】结构体
  • oracle比较一下统计信息差异吧
  • SQL教程-基础语法
  • 【leetcode】T1599
  • 深度学习可视化指标方法工具
  • Python学习之旅:进阶阶段(五)数据结构-双端队列(collections.deque)
  • 如何将电脑桌面默认的C盘设置到D盘?详细操作步骤!
  • leetcode——排序链表(java)
  • 深入探索SQL中修改表字段属性的技巧与策略
  • 【PyQt5】数据库连接失败: Driver not loaded Driver not loaded
  • 10.2 目录(文件夹)操作
  • 至少是其他数字两倍的最大数(747)
  • Skynet实践之「Lua C 模块集成—优先级队列」
  • 渲染流程概述
  • 【逻辑学导论第15版】A. 推理
  • Windows 系统下使用 Ollama 离线部署 DeepSeek - R1 模型指南
  • MyBatis 关联映射详解
  • OpenEuler学习笔记(十五):在OpenEuler上搭建Java运行环境
  • 【实践】基于SakuraLLM的离线日文漫画及视频汉化
  • HarmonyOS:状态管理最佳实践
  • 联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署
  • 中国股市“慢牛”行情的实现路径与展望
  • 如何将 Windows 上的文件传递到 Mac 上
  • Android-音频采集