You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

页面内容加载完成后Preloader持续加载不消失问题求助

解决预加载器(Preloader)加载完成后不消失的问题

嘿,我一眼就揪出问题所在啦!你的预加载器一直停着不消失,核心原因是事件监听的名称写错了,咱们一步步来修正:

1. 核心错误:用了不存在的事件名

你当前的JS代码里监听了一个浏览器根本没有的"loader"事件:

window.addEventListener("loader", function () { 
  loader.style.display = "none"; 
})

页面加载完成后会触发的原生事件是"load"(当所有资源如图片、脚本、样式都加载完毕时触发);如果只需要DOM结构加载完成就隐藏预加载器,也可以用"DOMContentLoaded"事件。

2. 修正后的完整代码

JavaScript部分(修正事件名)

var loader = document.getElementById("loader"); 
// 监听页面全部资源加载完成的事件
window.addEventListener("load", function () { 
  loader.style.display = "none"; 
})

CSS部分(顺便修正拼写小错误)

你原来的CSS里widows是笔误,应该是width,另外补充了动画的完整结束状态:

body { 
  height: 100%; 
  width: 100%; /* 修正widows为width */
  overflow: hidden; 
} 

.loader { 
  position: absolute; 
  height: 80px; 
  width: 80px; 
  top: 0; 
  left: 0; 
  right: 0; 
  bottom: 0; 
  margin: auto; 
  border: 6px solid lightgrey; 
  border-radius: 100%; 
  border-top: 6px solid skyblue; 
  animation: spin 1s infinite linear; 
} 

@keyframes spin { 
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); } /* 补充完整动画结束状态 */
}

3. 额外优化说明

  • 如果希望DOM结构加载完成就隐藏预加载器(不用等图片等大资源),可以把"load"换成"DOMContentLoaded":
    window.addEventListener("DOMContentLoaded", function () { 
      loader.style.display = "none"; 
    })
    
  • 记得确保你的HTML里有对应id的元素:
    <div id="loader" class="loader"></div>
    

这样修改后,页面加载完成后预加载器就会自动消失啦!

内容的提问来源于stack exchange,提问作者Lavish Sardana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:05:24