当前位置:首页 > 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('进度更新完成');
});

进度条组件封装

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

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实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previ…

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

js实现日历

js实现日历

实现日历的基本思路 使用JavaScript实现日历的核心是动态生成日期表格,并处理月份切换逻辑。需要计算当前月的天数、起始星期几,并动态渲染到页面上。 获取当前日期信息 通过Date对象获取当前…

js实现复制功能

js实现复制功能

使用 document.execCommand 方法 这种方法适用于较旧的浏览器,但在现代浏览器中可能被逐步淘汰。通过创建一个临时的 textarea 元素,将文本内容放入其中,然后执行复制命令。…

js 实现分页

js 实现分页

实现分页的基本逻辑 分页功能通常需要后端返回数据总量或总页数,前端根据当前页码和每页条数截取对应数据。以下是一个基于JavaScript的简单分页实现方案: 前端分页实现 假设已有从后端获取的完整…

js分组实现

js分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…