当前位置:首页 > JavaScript

js实现进度

2026-03-02 06:32:49JavaScript

实现进度条的基本方法

使用HTML和CSS创建进度条的容器,通过JavaScript动态更新进度。

<div id="progress-container" style="width: 100%; background-color: #f3f3f3;">
  <div id="progress-bar" style="width: 0%; height: 30px; background-color: #4CAF50;"></div>
</div>
function updateProgress(percent) {
  const progressBar = document.getElementById('progress-bar');
  progressBar.style.width = percent + '%';
}

动画效果实现

使用CSS过渡效果让进度变化更平滑。

#progress-bar {
  transition: width 0.3s ease;
}

模拟真实进度

使用定时器模拟任务进度更新。

let progress = 0;
const interval = setInterval(() => {
  progress += 5;
  updateProgress(progress);

  if (progress >= 100) {
    clearInterval(interval);
  }
}, 500);

基于Promise的进度控制

适用于异步操作时更新进度。

function simulateAsyncTask() {
  return new Promise((resolve) => {
    setTimeout(resolve, 1000);
  });
}

async function runTasks() {
  const tasks = [/* 任务数组 */];
  for (let i = 0; i < tasks.length; i++) {
    await simulateAsyncTask();
    updateProgress((i + 1) / tasks.length * 100);
  }
}

圆形进度条实现

使用SVG或Canvas创建圆形进度指示器。

<svg width="120" height="120" viewBox="0 0 120 120">
  <circle cx="60" cy="60" r="54" fill="none" stroke="#f3f3f3" stroke-width="12"/>
  <circle id="progress-circle" cx="60" cy="60" r="54" fill="none" stroke="#4CAF50" stroke-width="12" stroke-dasharray="339.292" stroke-dashoffset="339.292"/>
</svg>
function updateCircleProgress(percent) {
  const circumference = 339.292;
  const offset = circumference - (percent / 100) * circumference;
  document.getElementById('progress-circle').style.strokeDashoffset = offset;
}

进度条事件监听

添加事件监听器响应进度变化。

document.getElementById('progress-bar').addEventListener('transitionend', () => {
  console.log('进度更新完成');
});

进度条组件封装

创建可复用的进度条组件类。

js实现进度

class ProgressBar {
  constructor(containerId) {
    this.container = document.getElementById(containerId);
    this.bar = document.createElement('div');
    this.bar.style.height = '100%';
    this.bar.style.width = '0%';
    this.bar.style.backgroundColor = '#4CAF50';
    this.container.appendChild(this.bar);
  }

  update(percent) {
    this.bar.style.width = percent + '%';
  }
}

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

相关文章

js实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

js实现列表

js实现列表

使用 JavaScript 实现列表 JavaScript 提供了多种方式来实现列表功能,包括数组操作、DOM 元素动态生成等。以下是几种常见的实现方法: 使用数组存储列表数据 数组是 JavaSc…

vue实现进度审批

vue实现进度审批

Vue 实现进度审批功能 进度审批功能通常涉及表单提交、状态跟踪和交互反馈。以下是实现的基本思路和代码示例。 审批流程数据结构设计 使用对象数组存储审批步骤,每个步骤包含状态、审批人等信息: da…

js 实现全屏

js 实现全屏

使用 requestFullscreen 方法 通过调用元素的 requestFullscreen 方法可以实现全屏。该方法兼容现代浏览器,但不同浏览器可能需要前缀。 const element =…

js实现复选框

js实现复选框

实现复选框的基本方法 使用HTML的<input type="checkbox">元素创建复选框,并通过JavaScript监听其状态变化。 <input type="checkb…

js实现刷新页面

js实现刷新页面

刷新页面的方法 在JavaScript中,可以通过多种方式实现页面刷新。以下是几种常见的方法: 使用 location.reload() 调用 location.reload() 方法可以重新加载当…