当前位置:首页 > 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实现图表

在JavaScript中实现图表通常使用流行的图表库,以下是几种常见的方法和工具: 使用Chart.js Chart.js是一个简单灵活的库,适合快速生成响应式图表。安装方式包括CDN引入或npm安…

js类实现

js类实现

使用类实现 JavaScript 功能 在 JavaScript 中,类(Class)是一种语法糖,基于原型继承机制。通过 class 关键字可以更直观地定义对象模板。 基本类定义 class…

js树实现

js树实现

树的基本概念 树是一种非线性的数据结构,由节点和边组成。每个节点包含一个值和指向子节点的引用。树的顶部节点称为根节点,没有子节点的节点称为叶节点。 树的实现方式 在JavaScript中,树可以通过…

js 实现递归

js 实现递归

递归的基本概念 递归是指函数直接或间接调用自身的过程。在JavaScript中,递归通常用于解决可以分解为相似子问题的问题,如阶乘、斐波那契数列、树形结构遍历等。 递归的实现要点 基线条件(Base…

js 实现日历

js 实现日历

实现日历的基本思路 日历的核心功能是展示日期,并允许用户进行日期选择或导航。JavaScript 可以动态生成日历的 HTML 结构,并处理用户交互逻辑。 基础日历结构 日历通常包含头部(显示月份和…

js 实现截图

js 实现截图

使用html2canvas库实现截图 html2canvas是一个流行的JavaScript库,可将HTML元素转换为Canvas,进而导出为图片。 安装库: npm instal…