使用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.rhkb.cn/news/9513.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ios swift画中画技术尝试

继上篇&#xff1a;iOS swift 后台运行应用尝试失败-CSDN博客 为什么想到画中画&#xff0c;起初是看到后台模式里有一个picture in picture&#xff0c;去了解了后发现这个就是小窗口视频播放&#xff0c;方便用户执行多任务。看小窗口视频的同时&#xff0c;可以作其他的事情…

论文阅读(二):理解概率图模型的两个要点:关于推理和学习的知识

1.论文链接&#xff1a;Essentials to Understand Probabilistic Graphical Models: A Tutorial about Inference and Learning 摘要&#xff1a; 本章的目的是为没有概率图形模型背景或没有深入背景的科学家提供一个高级教程。对于更熟悉这些模型的读者&#xff0c;本章将作为…

【C++】特殊类设计

目录 一、请设计一个类&#xff0c;不能被拷贝二、请设计一个类&#xff0c;只能在堆上创建对象三、请设计一个类&#xff0c;只能在栈上创建对象四、请设计一个类&#xff0c;不能被继承五、请设计一个类&#xff0c;只能创建一个对象(单例模式)5.1 饿汉模式5.2 懒汉模式 结尾…

SSM开发(七) MyBatis解决实体类(model)的字段名和数据库表的列名不一致方法总结(四种方法)

目录 方法一: 使用@Results和@Result注解(注解方式) 方法二:修改 SQL 查询语句中的别名(注解方式) 方法三: 全局配置别名或结果映射(resultMap,XML配置方式) 方法四:使用@Column注解 在MyBatis中,如果你希望使用注解的方式来操作数据库,但又遇到实体类中的…

USB 3.1-GL3510-52芯片原理图设计

USB 3.1-GL3510-52芯片原理图设计 端口功能与兼容性物理层集成与性能电源相关特性充电功能其他特性原理图接口防护ESD 保护要求 GL3510-52是一款由Genesys Logic&#xff08;创惟科技&#xff09;研发的USB转换芯片&#xff0c;具有以下特点&#xff1a; 端口功能与兼容性 它…

LeetCode热题100中 17. 20. 53. 78. 215.

17.电话号码的字母组合&#xff1a; 题目描述&#xff1a; 实现思路&#xff1a; 将回溯过程抽象成树结构&#xff0c;每个叶子节点作为结果的一部分。 我们定义一个数组map&#xff0c;它的下标表示输入的数字所对应的字母&#xff0c;先对特殊情况进行处理&#xff1a;1.输…

高级编码参数

1.跳帧机制 参考资料&#xff1a;frameskipping-hotedgevideo 跳帧机制用于优化视频质量和编码效率。它通过选择性地跳过某些帧并使用参考帧来预测和重建视频内容&#xff0c;从而减少编码所需的比特率&#xff0c;同时保持较高的视频质量。在视频编码过程中&#xff0c;如果…

内网穿透实现MC联机

目录 内网穿透下载安装服务端&#xff08;你&#xff09;启动网络启动 MC 客户端&#xff08;你的朋友&#xff09; 放寒假了&#xff0c;想和同学玩mc&#xff0c;但是没有服务器怎么办呢&#xff1f;这就不得不提到内网穿透技术了。 注&#xff1a;本文参考视频&#xff1a;…

【每日一A】2015NOIP真题 (二分+贪心) python

题目概述 在起点和终点之间有n个石头&#xff0c;移除某些&#xff08;不超过m个&#xff09;石头后&#xff0c;让石头间的距离最大。 求石头间的最短距离d的最大值 跳石头 点此跳转 https://www.lanqiao.cn/problems/364/learning/?page1&first_category_id1&status…

获取snmp oid的小方法1(随手记)

snmpwalk遍历设备的mib # snmpwalk -v <SNMP version> -c <community-id> <IP> . snmpwalk -v 2c -c test 192.168.100.201 .根据获取的值&#xff0c;找到某一个想要的值的oid # SNMPv2-MIB::sysName.0 STRING: test1 [rootzabbix01 fonts]# snmpwalk -v…

FreeRTOS从入门到精通 第十四章(队列集)

参考教程&#xff1a;【正点原子】手把手教你学FreeRTOS实时系统_哔哩哔哩_bilibili 一、队列集简介 1、队列集概述 &#xff08;1&#xff09;一个队列只允许任务间传递的消息为同一种数据类型&#xff0c;如果需要在任务间传递不同数据类型的消息时&#xff0c;那么就可以…

Spring MVC 综合案例

目录 一. 加法计算器 1. 准备工作 2. 约定前后端交互接口 需求分析 接口定义 3. 服务器端代码 4. 运行测试 二. 用户登录 1. 准备工作 2. 约定前后端交互接口 需求分析 接口定义 (1) 登录界面接口 (2) 首页接口 3. 服务器端代码 4. 运行测试 三. 留言板 1. 准备…

Edge-TTS在广电系统中的语音合成技术的创新应用

Edge-TTS在广电系统中的语音合成技术的创新应用 作者&#xff1a;本人是一名县级融媒体中心的工程师&#xff0c;多年来一直坚持学习、提升自己。喜欢Python编程、人工智能、网络安全等多领域的技术。 摘要 随着人工智能技术的快速发展&#xff0c;文字转语音&#xff08;Te…

36、【OS】【Nuttx】OSTest分析(2):环境变量测试

背景 2025.1.29 蛇年快乐&#xff01; 接之前wiki 35、【OS】【Nuttx】OSTest分析&#xff08;1&#xff09;&#xff1a;stdio测试&#xff08;五&#xff09; 已经分析完了第一个测试项&#xff0c;输入输出端口测试&#xff0c;接下来分析下环境变量测试&#xff0c;也比较…

设计模式的艺术-策略模式

行为型模式的名称、定义、学习难度和使用频率如下表所示&#xff1a; 1.如何理解策略模式 在策略模式中&#xff0c;可以定义一些独立的类来封装不同的算法&#xff0c;每个类封装一种具体的算法。在这里&#xff0c;每个封装算法的类都可以称之为一种策略&#xff08;Strategy…

Oracle迁移DM数据库

Oracle迁移DM数据库 本文记录使用达梦官方数据迁移工具DTS&#xff0c;将Oracle数据库的数据迁移至达梦数据库。 1 数据准备 2 DTS工具操作步骤 2.1 创建工程 打开DTS迁移工具&#xff0c;点击新建工程&#xff0c;填写好工程信息&#xff0c;如图&#xff1a; 2.2 新建迁…

Base64详解

文章目录 Base64详解一、引言二、Base64编码原理1、Base64的基本概念2、编码过程2.1、分组与填充2.2、二进制转换2.3、字符映射 三、Base64解码原理四、使用示例1、Java实现Base64编码2、Java实现Base64解码 五、总结 Base64详解 一、引言 Base64是一种常见的编码方式&#xf…

Android createScaledBitmap与Canvas通过RectF drawBitmap生成马赛克/高斯模糊(毛玻璃)对比,Kotlin

Android createScaledBitmap与Canvas通过RectF drawBitmap生成马赛克/高斯模糊&#xff08;毛玻璃&#xff09;对比&#xff0c;Kotlin import android.graphics.Bitmap import android.graphics.BitmapFactory import android.graphics.Canvas import android.graphics.RectF …

消息队列篇--通信协议篇--应用层协议和传输层协议理解

在网络通信中&#xff0c;传输层协议和应用层协议是OSI模型中的两个不同层次的协议&#xff0c;它们各自承担着不同的职责。 下文中&#xff0c;我们以TCP/UDP&#xff08;传输层协议&#xff09;和HTTP/SMTP&#xff08;应用层协议&#xff09;为例进行详细解释。 1、传输层协…

团体程序设计天梯赛-练习集——L1-025 正整数A+B

一年之际在于春&#xff0c;新年的第一天&#xff0c;大家敲代码了吗&#xff1f;哈哈 前言 这道题分值是15分&#xff0c;值这个分&#xff0c;有一小点运算&#xff0c;难度不大&#xff0c;虽然说做出来了&#xff0c;但是有两个小疑点。 L1-025 正整数AB 题的目标很简单…