CSS进度条与加载指示器
显示效果

代码如下,加了注释方便看
<!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-bar {
height: 10px; /* 进度条高度 */
width: 400px; /* 进度条宽度 */
background-color: #eee; /* 进度条背景色 */
border-radius: 5px; /* 圆角边框 */
position: relative; /* 设置为相对定位,用于子元素的绝对定位 */
overflow: hidden; /* 隐藏溢出内容,确保进度指示条不超出容器 */
}
/* 进度条伪元素,作为实际进度指示器
使用绝对定位覆盖在容器上 */
.progress-bar::before {
content: ''; /* 伪元素必需的内容属性 */
position: absolute; /* 绝对定位,相对于进度条容器 */
height: 100%; /* 高度与容器相同 */
width: 45%; /* 初始宽度为45% */
background-color: chocolate; /* 进度条颜色 */
border-radius: 5px; /* 圆角与容器保持一致 */
animation: anim 3s linear forwards; /* 应用动画:名称、时长、速度曲线、保持最终状态 */
}
/* 进度条动画关键帧定义
控制进度条从0到100%的宽度变化和颜色变化 */
@keyframes anim {
0% {
width: 0; /* 动画开始时宽度为0 */
}
100% {
width: 100%; /* 动画结束时宽度为100% */
background-color: green; /* 动画结束时变为绿色,表示完成 */
}
}
/* 加载指示器(旋转器)容器样式
创建圆形加载指示器 */
.loader {
width: 100px; /* 加载指示器宽度 */
height: 100px; /* 加载指示器高度 */
border: 5px solid #eee; /* 浅灰色边框作为背景 */
border-radius: 50%; /* 设置为圆形 */
position: relative; /* 相对定位,用于伪元素的定位 */
}
/* 加载指示器伪元素,创建旋转动画效果
比容器稍大,仅显示顶部边框 */
.loader::before {
content: ''; /* 伪元素必需的内容属性 */
position: absolute; /* 绝对定位 */
top: -5px; /* 上偏移,补偿边框宽度 */
left: -5px; /* 左偏移,补偿边框宽度 */
bottom: -5px; /* 下偏移,补偿边框宽度 */
right: -5px; /* 右偏移,补偿边框宽度 */
border: 5px solid transparent; /* 透明边框 */
border-radius: 50%; /* 圆形 */
border-top: 5px solid red; /* 仅顶部边框为红色,创建弧线效果 */
animation: animRotate 2s linear infinite; /* 应用无限旋转动画 */
}
/* 旋转动画关键帧定义
控制加载指示器从0度到360度的持续旋转 */
@keyframes animRotate {
0% {
transform: rotate(0deg); /* 动画开始时角度为0度 */
}
100% {
transform: rotate(360deg); /* 动画结束时旋转360度(完整一圈) */
}
}
</style>
</head>
<body>
<p>进度条:</p>
<!-- 进度条容器 -->
<div class="progress-bar"></div>
<p>加载指示器:</p>
<!-- 加载指示器容器 -->
<div class="loader"></div>
</body>
</html>
本文来自博客园,作者:liessay,转载请注明原文链接:https://www.cnblogs.com/liessay/p/19062442

浙公网安备 33010602011771号