…">
当前位置:首页 > JavaScript

js进度条实现

2026-04-03 21:44:08JavaScript

使用HTML和CSS创建基础结构

在HTML中创建一个容器元素和一个进度条元素。CSS用于设置进度条的样式和初始状态。

<div class="progress-container">
  <div class="progress-bar" id="progressBar"></div>
</div>
.progress-container {
  width: 100%;
  height: 20px;
  background-color: #f0f0f0;
  border-radius: 10px;
  overflow: hidden;
}

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

通过JavaScript控制进度

使用JavaScript动态更新进度条的宽度。可以通过定时器或事件触发来模拟进度变化。

const progressBar = document.getElementById('progressBar');
let progress = 0;

function updateProgress() {
  progress += 10;
  if (progress > 100) {
    progress = 100;
  }
  progressBar.style.width = progress + '%';
}

// 模拟进度更新
setInterval(updateProgress, 1000);

使用Promise和异步加载

结合Promise和异步操作实现更真实的进度控制,例如文件上传或数据加载。

function simulateAsyncTask() {
  return new Promise((resolve) => {
    const interval = setInterval(() => {
      progress += 5;
      progressBar.style.width = progress + '%';
      if (progress >= 100) {
        clearInterval(interval);
        resolve();
      }
    }, 300);
  });
}

simulateAsyncTask().then(() => {
  console.log('任务完成');
});

动态计算进度

根据实际任务(如文件上传)动态计算进度,使用XMLHttpRequestfetch的进度事件。

const xhr = new XMLHttpRequest();
xhr.open('POST', 'upload-url');
xhr.upload.onprogress = (event) => {
  if (event.lengthComputable) {
    const percent = (event.loaded / event.total) * 100;
    progressBar.style.width = percent + '%';
  }
};
xhr.send(formData);

使用第三方库简化实现

使用如ProgressBar.jsNProgress等库快速实现高级进度条效果。

// 使用NProgress示例
NProgress.start();
setTimeout(() => NProgress.done(), 2000);

自定义动画和样式

通过CSS动画或JavaScript增强进度条的视觉效果,如添加渐变或平滑过渡。

js进度条实现

.progress-bar {
  background: linear-gradient(to right, #4CAF50, #8BC34A);
  animation: pulse 1.5s infinite;
}

@keyframes pulse {
  0% { opacity: 1; }
  50% { opacity: 0.7; }
  100% { opacity: 1; }
}

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

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 实现页面跳转,这是最常用的方法。 window.location.href = 'https://…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Par…

js实现百叶窗

js实现百叶窗

使用CSS和JavaScript实现百叶窗效果 通过CSS动画和JavaScript事件监听可以实现百叶窗效果。核心思路是将内容区域分割为多个条状元素,通过控制它们的展开/折叠状态来模拟百叶窗。 &…

js实现防洪

js实现防洪

防抖(Debounce)实现 防抖的核心思想是在事件触发后延迟执行回调函数,若在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口调整等场景。 function debounce(func,…

js 实现跳转

js 实现跳转

使用 window.location.href 进行跳转 通过修改 window.location.href 可以跳转到指定 URL,浏览器会加载新页面: window.location.hre…