当前位置:首页 > HTML

h5实现进度条

2026-03-06 11:34:02HTML

使用HTML5的<progress>标签

HTML5提供了<progress>标签,可以快速实现进度条功能。该标签有两个属性:value(当前值)和max(最大值)。进度条会自动根据这两个值计算百分比。

<progress value="50" max="100"></progress>

动态更新进度可以通过JavaScript修改value属性:

document.querySelector('progress').value = 75;

使用CSS自定义样式

<progress>标签的默认样式较简单,可以通过CSS伪元素进行美化:

progress {
  width: 300px;
  height: 20px;
  border-radius: 10px;
}

progress::-webkit-progress-bar {
  background-color: #f0f0f0;
  border-radius: 10px;
}

progress::-webkit-progress-value {
  background-color: #4CAF50;
  border-radius: 10px;
}

使用<div>模拟进度条

如果需要更灵活的样式控制,可以用<div>元素模拟进度条:

<div class="progress-container">
  <div class="progress-bar" style="width: 50%;"></div>
</div>

对应CSS:

.progress-container {
  width: 300px;
  height: 20px;
  background-color: #f0f0f0;
  border-radius: 10px;
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  background-color: #4CAF50;
  transition: width 0.3s ease;
}

JavaScript动态更新:

document.querySelector('.progress-bar').style.width = '75%';

动画效果实现

通过CSS动画可以实现加载动画效果:

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

.animated-progress {
  animation: progress-animation 2s ease-in-out infinite;
}

使用Canvas绘制

对于复杂进度条,可以使用Canvas API:

<canvas id="progressCanvas" width="300" height="20"></canvas>

JavaScript绘制代码:

const canvas = document.getElementById('progressCanvas');
const ctx = canvas.getContext('2d');

function drawProgress(percent) {
  ctx.clearRect(0, 0, canvas.width, canvas.height);

  // 背景
  ctx.fillStyle = '#f0f0f0';
  ctx.fillRect(0, 0, canvas.width, canvas.height);

  // 进度条
  ctx.fillStyle = '#4CAF50';
  ctx.fillRect(0, 0, canvas.width * (percent/100), canvas.height);
}

drawProgress(50); // 初始50%

响应式设计技巧

使用百分比单位或vw/vh单位确保进度条在不同设备上适配:

.progress-container {
  width: 80vw;
  max-width: 500px;
}

结合媒体查询调整不同屏幕尺寸下的样式:

h5实现进度条

@media (max-width: 600px) {
  progress {
    height: 15px;
  }
}

标签: 进度条
分享给朋友:

相关文章

js实现上传进度条

js实现上传进度条

使用XMLHttpRequest实现上传进度条 XMLHttpRequest是传统的AJAX请求方式,支持上传进度监控。通过监听upload对象的progress事件获取上传进度信息。 const…

js实现录音进度条回放

js实现录音进度条回放

实现录音进度条回放的方法 使用Web Audio API和MediaRecorder API Web Audio API提供了音频处理的底层能力,MediaRecorder API用于录制音频流。结合…

jquery进度条插件

jquery进度条插件

jQuery进度条插件推荐 ProgressBar.js 一个灵活且轻量级的进度条库,支持圆形、直线和自定义形状。通过SVG渲染,动画效果流畅,支持动态更新进度。适合需要可视化进度展示的场景。 jQ…

vue请求实现进度条

vue请求实现进度条

实现请求进度条的方法 在Vue中实现请求进度条可以通过多种方式完成,以下是几种常见的方法: 使用axios拦截器 axios拦截器可以在请求发出前和响应返回后执行特定逻辑,适合用于进度条控制。…

vue实现水波球进度条

vue实现水波球进度条

Vue 实现水波球进度条 使用 SVG 和动态计算 在 Vue 中实现水波球进度条,可以通过 SVG 结合动态计算波浪效果。以下是一个基于 Vue 3 的实现方法: <template>…

vue实现进度条

vue实现进度条

Vue 实现进度条的几种方法 使用原生 HTML5 <progress> 标签 Vue 可以结合 HTML5 的 <progress> 标签快速实现基础进度条: <te…