当前位置:首页 > JavaScript

js实现等待效果

2026-03-01 02:44:36JavaScript

使用 setTimeout 实现延迟执行

通过 setTimeout 可以在指定时间后执行回调函数,适合简单的等待效果:

setTimeout(() => {
  console.log('延迟执行的操作');
}, 2000); // 2000毫秒后执行

使用 Promise 封装异步等待

结合 PromisesetTimeout 实现可链式调用的等待:

js实现等待效果

function wait(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

wait(3000).then(() => {
  console.log('3秒后执行');
});

使用 async/await 实现同步式写法

在异步函数中通过 await 实现更直观的等待:

async function delayedAction() {
  console.log('开始等待');
  await wait(2000); // 使用前例的wait函数
  console.log('等待结束');
}

加载动画配合等待效果

通过控制DOM元素显示/隐藏增强用户体验:

js实现等待效果

function showLoader() {
  document.getElementById('loader').style.display = 'block';
}

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

async function fetchWithLoading() {
  showLoader();
  await wait(1500);
  // 模拟数据获取
  hideLoader();
}

使用 requestAnimationFrame 实现平滑动画

适合需要与屏幕刷新率同步的视觉等待效果:

function animateWait(duration) {
  const start = performance.now();

  function frame(time) {
    const elapsed = time - start;
    if (elapsed < duration) {
      requestAnimationFrame(frame);
    } else {
      console.log('动画等待结束');
    }
  }

  requestAnimationFrame(frame);
}

进度条模拟实现

通过定时更新进度状态模拟加载过程:

function simulateProgress(duration) {
  let progress = 0;
  const interval = 50;
  const steps = duration / interval;
  const increment = 100 / steps;

  const timer = setInterval(() => {
    progress += increment;
    console.log(`进度: ${Math.min(progress, 100)}%`);
    if (progress >= 100) clearInterval(timer);
  }, interval);
}

标签: 效果js
分享给朋友:

相关文章

js实现拖拽

js实现拖拽

实现拖拽的基本步骤 使用JavaScript实现拖拽功能需要监听鼠标事件,包括mousedown、mousemove和mouseup。以下是实现的基本逻辑: const draggableEleme…

vue.js实现轮播

vue.js实现轮播

Vue.js 实现轮播功能 使用第三方库(推荐) Vue.js 生态中有许多成熟的轮播组件库,例如 vue-awesome-swiper 或 swiper,它们功能丰富且易于集成。 安装 swipe…

js实现动画

js实现动画

使用 CSS 动画与 JavaScript 控制 通过 JavaScript 动态添加或移除 CSS 类来触发动画。CSS 定义关键帧(@keyframes),JavaScript 通过 classL…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、图…

js实现防洪

js实现防洪

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