当前位置:首页 > JavaScript

js实现等待效果

2026-04-04 03:17:29JavaScript

实现等待效果的几种方法

使用 setTimeout

通过 setTimeout 可以延迟执行代码,模拟等待效果。适用于简单的延迟操作。

console.log("开始等待");
setTimeout(() => {
    console.log("等待结束");
}, 2000); // 等待2秒

使用 Promise 和 async/await

通过 Promise 结合 async/await 可以更优雅地实现等待效果,适用于异步操作。

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

async function demo() {
    console.log("开始等待");
    await wait(3000); // 等待3秒
    console.log("等待结束");
}
demo();

使用 setInterval 实现周期性等待

setInterval 可以周期性地执行代码,适合需要重复等待的场景。

let counter = 0;
const intervalId = setInterval(() => {
    console.log(`等待第${++counter}次`);
    if (counter >= 5) {
        clearInterval(intervalId);
        console.log("等待结束");
    }
}, 1000); // 每秒执行一次

使用 CSS 动画模拟视觉等待效果

通过 CSS 动画和 JavaScript 结合,可以实现视觉上的等待效果,比如加载动画。

const spinner = document.createElement("div");
spinner.style.width = "50px";
spinner.style.height = "50px";
spinner.style.border = "5px solid #f3f3f3";
spinner.style.borderTop = "5px solid #3498db";
spinner.style.borderRadius = "50%";
spinner.style.animation = "spin 1s linear infinite";
document.body.appendChild(spinner);

// 移除加载动画
setTimeout(() => {
    spinner.remove();
    console.log("加载完成");
}, 3000);

使用 requestAnimationFrame 实现平滑等待

requestAnimationFrame 适合需要与浏览器渲染同步的等待效果,比如动画或游戏。

js实现等待效果

function waitAnimation(ms) {
    const start = performance.now();
    function checkTime(timestamp) {
        if (timestamp - start >= ms) {
            console.log("等待结束");
            return;
        }
        requestAnimationFrame(checkTime);
    }
    requestAnimationFrame(checkTime);
}
console.log("开始等待");
waitAnimation(2000); // 等待2秒

注意事项

  • setTimeoutsetInterval 的时间参数单位为毫秒。
  • async/await 需要包裹在异步函数中使用。
  • 清除定时器或动画帧可以避免内存泄漏。
  • 视觉等待效果可以结合 CSS 或第三方库(如 Spin.js)增强用户体验。

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

相关文章

js实现日历

js实现日历

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

js实现图表

js实现图表

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

js实现图片滚动效果

js实现图片滚动效果

使用CSS动画实现图片滚动 通过CSS的@keyframes和animation属性实现无缝滚动效果。将图片容器设置为横向排列,通过动画平移位置。 <style> .scroll-c…

vue实现气泡效果

vue实现气泡效果

实现气泡效果的方法 在Vue中实现气泡效果可以通过CSS动画、第三方库或自定义组件完成。以下是几种常见方法: 使用纯CSS动画 通过CSS的@keyframes和transform属性创建气泡上升动…

js 实现滚动

js 实现滚动

实现滚动的方法 使用 window.scrollTo() window.scrollTo() 方法可以滚动到文档中的特定位置。可以指定 x 和 y 坐标,或者使用平滑滚动的选项。 // 滚动到指定位…

js实现显示隐藏

js实现显示隐藏

显示隐藏的实现方法 在JavaScript中,实现元素的显示和隐藏可以通过多种方式完成。以下是几种常见的方法: 修改CSS的display属性 通过改变元素的display属性可以在none(隐藏)…