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

embedded/2025/1/30 13:11:06/

文章目录

  • 使用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基础样式

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

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%。

css">@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>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;}@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则可以帮助我们根据实际加载进度动态更新进度条。这种组合不仅提升了用户体验,还使页面加载过程更加直观。


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

参考文章


http://www.ppmy.cn/embedded/158078.html

相关文章

01学习预热篇(D6_正式踏入JVM深入学习前的铺垫)

目录 学习前言 一、虚拟机的结构 1. Java虚拟机参数设置 2. java 堆 3. 出入栈 4. 局部变量表 1> 局部变量的剖析 2> 局部变量的回收 5. 操作数栈 1> 常量入栈指令 2> 局部变量值转载到栈中指令 3> 将栈顶值保存到局部变量中指令 6. 帧数据区 7. 栈…

数据结构题目 课时9

题目 1、任何一个带权的无向连通图的最小生成树&#xff08; &#xff09;。 A. 只有一棵 B. 有一棵或多棵 C. 一定有多棵 D. 可能不存在 2、一个赋权网络如下图所示。从顶点 a 开始&#xff0c;用 Prim 算法求出一棵最小生成树。 3、请对下图的无向带权图按克鲁斯卡尔算法求…

从零开始学 HTML:构建网页的基本框架与技巧

系列文章目录 01-从零开始学 HTML&#xff1a;构建网页的基本框架与技巧 文章目录 系列文章目录前言一、HTML 文档的基本框架1.1 <!DOCTYPE html>、<html>、<head>、<body> 标签解析1.1.1 <!DOCTYPE html> 标签1.1.2 <html> 标签1.1.3 &l…

Python数据分析-Python语法基础,IPython和Jupyter-Notebooks(二)

title: ‘Python数据分析:Python语法基础&#xff0c;IPython和Jupyter Notebooks&#xff08;二&#xff09;’ tags: python数据分析 categories:python数据分析 keywords:python数据分析 cover: …/img/404_icecream_whale.png description: 本文介绍python的基础语法和jup…

python-leetcode-从前序与中序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; # Definition for a binary tree node. # class TreeNode: # def __init__(self, val0, leftNone, rightNone): # self.val val # self.left left # self.right r…

SpringBoot中Excel表的导入、导出功能的实现

文章目录 一、easyExcel简介二、Excel表的导出2.1 添加 Maven 依赖2.2 创建导出数据的实体类4. 编写导出接口5. 前端代码6. 实现效果 三、excel表的导出1. Excel表导入的整体流程1.1 配置文件存储路径 2. 前端实现2.1 文件上传组件 2.2 文件上传逻辑3. 后端实现3.1 文件上传接口…

STM32 EXTI中断配置

本次基于STM32F407做一个按键中断效果 EXTI简介&#xff1a; EXTI&#xff08;Extern Interrupt&#xff09;外部中断 EXTI可以监测指定GPIO口的电平信号&#xff0c;当其指定的GPIO口产生电平变化时&#xff0c;EXTI将立即向NVIC发出中断申请&#xff0c;经过NVIC裁决后即可中…

案例研究丨浪潮云洲通过DataEase推进多维度数据可视化建设

浪潮云洲工业互联网有限公司&#xff08;以下简称为“浪潮云洲”&#xff09;成立于2018年&#xff0c;定位于工业数字基础设施建设商、具有国际影响力的工业互联网平台运营商、生产性互联网头部服务商。截至目前&#xff0c;浪潮云洲工业互联网平台连续五年入选跨行业跨领域工…