信息发布→ 登录 注册 退出

解决J*aScript Loading动画不显示的问题

发布时间:2025-10-18

点击量:

解决javascript loading动画不显示的问题

本文旨在解决J*aScript项目中Loading动画无法正常显示的问题。通过分析HTML结构、CSS样式以及J*aScript代码,详细阐述了导致动画不显示的常见原因,并提供了相应的解决方案,包括正确使用`style.display`属性控制元素显示、以及CSS选择器的正确使用,确保Loading动画能够流畅运行,提升用户体验。

Loading动画不显示问题排查与解决

在Web开发中,Loading动画是提升用户体验的重要组成部分。当用户执行耗时操作时,Loading动画可以反馈程序运行状态,避免用户产生“卡死”的错觉。然而,有时Loading动画并不能如预期显示,本文将针对这一问题进行详细分析并提供解决方案。

1. HTML结构与CSS样式

首先,确保HTML结构正确,并且Loading动画相关的CSS样式已正确引入。以下是一个基本的HTML结构示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Loading Animation</title>
    <link rel="stylesheet" href="loading.css">
</head>
<body>
    <div id="loading-overlay">
        <div id="loader"></div>
        <p id="error-div"></p>
    </div>
    <button type="button" id="button_queue_go" onclick="refreshStatus();">Show Status</button>
    <script src="script.js"></script>
</body>
</html>

对应的CSS样式(loading.css)如下:

芒果商城系统GSHOP 芒果商城系统GSHOP

芒果系统GSHOP 纯静态商城系统,你还在为商城的优化而苦恼?GSHOP是全站纯静态商城系统,一键seo优化功能解决seo问题,自定义URL链接解决商城同质化问题;多页面显示:动态页、伪静态页面、纯静态页面增加收录,提升网站权重,提升流量等。安全稳定、功能强大的商城系统。1、芒果商城系统基于 php5.0开发,企业级应用。2、产品功能Ajax设计,响应速度更快,购物体验更好。3、全新密钥存放机制,

芒果商城系统GSHOP 0 查看详情 芒果商城系统GSHOP
#loading-overlay {
  z-index: 10;
  display: none; /* 初始状态隐藏 */
  position: fixed; /* 覆盖整个屏幕 */
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 半透明背景 */
  display: flex;
  justify-content: center;
  align-items: center;
}

#loader {
  border: 16px solid #f3f3f3;
  border-top: 16px solid #3498db;
  border-radius: 50%;
  width: 120px;
  height: 120px;
  animation: spin 2s linear infinite;
}

#error-div {
  z-index: 20;
  display: none;
  color: red;
  margin-top: 20px;
}

@keyframes spin {
    from {
        transform:rotate(0deg);
    }
    to {
        transform:rotate(360deg);
    }
}

注意:

  • #loading-overlay 初始状态设置为 display: none;,使其默认隐藏。
  • position: fixed; 确保Loading动画覆盖整个屏幕。
  • 使用 flex 布局使Loading动画居中显示。
  • 确保正确定义了 @keyframes spin 动画。
  • CSS选择器要使用#loader而不是.loader,因为HTML中是id。

2. J*aScript代码

J*aScript代码负责在需要显示Loading动画时,修改元素的display属性。以下是一个示例:

async function refreshStatus() {
    document.getElementById("loading-overlay").style.display = "flex";
    document.getElementById("loader").style.display = "block";
    alert("trying");

    try {
        await new Promise(r => setTimeout(r, 2000));
        var response = await fetch(
            the_url,
            {
                method: 'POST',
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json',
                    'Access-Control-Allow-Origin': '*',
                },
                body: JSON.stringify({"ok": "yes"})
            }
        );
    }
    catch (_error) {
        document.getElementById("error-div").style.display = "flex";
        document.getElementById("error-div").innerHTML = _error.message;
        document.getElementById("loading-overlay").style.display = "none"; // Hide loading overlay on error
        return;
    } finally {
        document.getElementById("loading-overlay").style.display = "none"; // Hide loading overlay when complete
    }
}

关键点:

  • 使用 document.getElementById("loading-overlay").style.display = "flex"; 和 document.getElementById("loader").style.display = "block"; 来显示Loading动画。 注意,必须使用.style.display 来修改元素的显示状态,而不是直接使用 .display。
  • 在 try...catch 块的 finally 块中,或者在catch块中,确保在操作完成后隐藏Loading动画,避免一直显示。

3. 常见问题与解决方案

  • CSS样式未正确引入: 检查标签的href属性是否指向正确的CSS文件路径。
  • J*aScript代码执行时机: 确保J*aScript代码在DOM加载完成后执行。可以将<script>标签放在</script>

以上就是解决J*aScript Loading动画不显示的问题的详细内容,更多请关注其它相关文章!


相关文章: C++如何操作注册表_Windows平台下C++读写注册表的API函数详解  2026春节假期时间安排 2026春节假日查询  AO3网页版最新入口合集 Archive of Our Own在线访问指南  微博网页版主页入口 微博官方网站免登录访问  163邮箱官方主页登录 直达网易邮箱登录核心页面  C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用  免费抖音短视频入口_抖音网页版短视频免费通道  J*a ArrayList索引越界异常:动态构建列数据的高效策略  知乎APP怎么管理已购盐选内容_知乎APP盐选内容购买记录与查看方法  mc.js免安装版 mc.js一键畅玩入口  j*a toString()的覆盖  Win11 BitLocker密码忘了怎么办 Win11找回BitLocker恢复密钥方法【解决】  深入理解J*a合成构造器:何时以及为何阻止其生成  三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升  解决移动端滚动问题的overflow属性应用指南  使用PHP DOM解析器高效提取HTML中特定标题及其紧邻段落  php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】  高德地图家和公司地址在哪设置 高德地图通勤路线设置方法【超详细】  c++如何使用std::memory_order控制原子操作顺序_c++ C++11内存模型详解  必由学官网首页入口 必由学教师网页版登录指南  2025-2030年全球乘用车销量预测:新能源成增长主力  AO3官网镜像链接 Archive of Our Own同人文在线浏览  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧  c++ dfs和bfs代码 c++深度广度优先搜索算法  夸克浏览器图书入口 夸克手机浏览器阅读入口  TikTok评论显示延迟如何处理 TikTok评论刷新优化方法  汽水音乐在线版入口_汽水音乐网页播放手册  学习通网页版官方登录 超星学习通电脑端入口指南  腾讯视频怎么举报不良内容_腾讯视频内容举报流程与违规信息处理方法  解决 Vaadin 8 中大文件音频播放与定位时出现的 IOException  yy漫画网页版官方入口_yy漫画官网登录页面链接  飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】  如何使用spryker/configurable-bundles-products-resource-relationship模块解决复杂产品捆绑关系难题  Fabric Mod开发:在1.19.3+版本中正确添加自定义物品并管理物品组  QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  将HTML动态表格多行数据保存到Google Sheet的教程  css滚动动画效果怎么实现_使用Animate.css滚动触发动画类  谷歌浏览器无痕模式怎么开 Chrome开启无痕浏览设置方法【教程】  抖音网页版怎么|直播|_抖音网页版开播操作指南  在Go语言中利用后缀数组处理多字符串:实现高效文本匹配与自动补全  b站怎么删除评论_b站评论管理与删除操作  网易大神账号申诉需要多久_网易大神账号申诉流程说明  《刺客信条4:黑旗》重制版新细节曝光:无缝加载 地图更细致!  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  CSS布局中意外空白:解决padding-top导致的顶部间距问题  Composer中的^和~符号代表什么_精通Composer版本号语义化约束  CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略  Python多版本共存与虚拟环境管理深度指南  在J*a中如何在J*a中使用异常机制记录错误日志_异常日志实践经验  MAC的“快捷指令”怎么同步到iPhone_MAC利用iCloud同步所有设备的自动化指令 

在线客服
服务热线

服务热线

4008988990

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!