当前位置:首页 > JavaScript

js 实现 loading

2026-01-31 22:56:07JavaScript

实现 JavaScript Loading 动画的方法

使用 CSS 和 JavaScript 创建基础加载动画

定义一个简单的旋转动画通过 CSS,用 JavaScript 控制显示和隐藏:

.loader {
  border: 5px solid #f3f3f3;
  border-top: 5px solid #3498db;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  animation: spin 1s linear infinite;
  margin: 20px auto;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
function showLoader() {
  document.getElementById('loader').style.display = 'block';
}

function hideLoader() {
  document.getElementById('loader').style.display = 'none';
}

使用 Promise 模拟异步加载

结合异步操作展示加载状态:

function simulateLoading() {
  showLoader();
  return new Promise(resolve => {
    setTimeout(() => {
      hideLoader();
      resolve('Data loaded');
    }, 2000);
  });
}

simulateLoading().then(response => console.log(response));

进度条加载实现

js 实现 loading

创建动态进度条显示加载进度:

<div id="progress-container" style="width:100%;background:#ddd;">
  <div id="progress-bar" style="height:30px;width:0%;background:#4CAF50;"></div>
</div>
let progress = 0;
const interval = setInterval(() => {
  progress += 10;
  document.getElementById('progress-bar').style.width = progress + '%';
  if (progress >= 100) clearInterval(interval);
}, 500);

使用第三方库(如 Spin.js)

快速集成专业加载动画:

js 实现 loading

const opts = {
  lines: 12,
  length: 30,
  width: 10,
  radius: 40,
  color: '#fff',
  speed: 1
};
const spinner = new Spinner(opts).spin(document.getElementById('loader'));

骨架屏加载效果

现代应用常用技术:

.skeleton {
  background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
  background-size: 200% 100%;
  animation: shimmer 1.5s infinite;
}

@keyframes shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
function showSkeleton() {
  document.querySelectorAll('.skeleton-placeholder').forEach(el => {
    el.classList.add('skeleton');
  });
}

注意事项

  • 移动端需考虑性能优化,避免复杂动画
  • 加载时间超过5秒时应提供取消选项
  • 重要操作需防止用户在加载期间重复提交
  • 考虑使用Web Workers处理长时间任务

标签: jsloading
分享给朋友:

相关文章

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js实现tab选项卡切换

js实现tab选项卡切换

实现Tab选项卡切换的JavaScript方法 使用纯JavaScript实现Tab切换功能,可以通过监听点击事件动态切换内容显示状态。以下是两种常见实现方式: 基础DOM操作实现 // 获取所有…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js 实现页面刷新

js 实现页面刷新

使用 location.reload() location.reload() 是原生 JavaScript 提供的页面刷新方法。调用该方法会重新加载当前页面,相当于点击浏览器的刷新按钮。 // 基本…

js 实现拖拽

js 实现拖拽

实现拖拽的基本步骤 在JavaScript中实现拖拽功能需要监听几个关键事件:mousedown、mousemove和mouseup。以下是实现的基本逻辑。 监听目标元素的mousedown事件,记…

js实现乘法

js实现乘法

实现乘法运算的方法 在JavaScript中实现乘法运算可以通过多种方式完成,以下列举几种常见方法: 基础运算符 直接使用乘法运算符*是最简单的方式: let result = 3 * 5; //…