html个人页面怎么加loading_html加载动画编写【体验】

14次阅读

必须等load事件才能隐藏loading动画,因其确保所有资源(含图片、cssjs、字体)加载完成;否则易出现闪烁或布局跳动。

html个人页面怎么加loading_html加载动画编写【体验】

页面加载完成前显示 loading 动画的关键时机

浏览器解析 html 是从上到下流式进行的,domContentLoaded 触发时 DOM 已就绪但图片、CSS、JS 可能还没加载完;而 load 事件才代表所有资源(含图片、样式表、脚本)全部加载完毕。要实现“真正意义上的页面加载中动画”,必须等 load,否则可能动画刚消失,背景图或字体还没出来,造成闪烁或布局跳动。

用纯 HTML + CSS 实现最简 loading 动画

不需要 JS 也能起步,但仅限“静态占位”:在 开头插入一个固定定位的 loading 层,再用 window.addEventListener('load', ...) 隐藏它。常见错误是直接用 display: none 写在初始 HTML 里——那动画根本不会出现。

正确做法:

  • 最上方加:
  • 中加 CSS 动画定义:
  • 在页面底部或 块中加 JS 隐藏逻辑:

避免 loading 动画被阻塞的两个硬坑

很多人的 loading 动画“一闪而过”甚至不出现,根本原因不是代码写错,而是资源加载顺序和阻塞问题:

立即学习前端免费学习笔记(深入)”;

  • 标签没加 deferasync,且放在 里——JS 同步执行会阻塞 HTML 解析,导致 loading 元素还没被创建,页面就卡住了
  • CSS 文件体积大、未内联关键样式,浏览器等待 CSSOM 构建完成才开始渲染,此时即使 HTML 有 loading 元素,也可能因无样式而不显示(比如没设 backgroundz-index
  • 字体文件(@font-face)加载慢,触发 FOIT(Flash of Invisible Text),看起来像“加载卡住”,其实 loading 动画早已隐藏,只是文字没出来

更可靠的 loading 状态管理建议

如果页面依赖 JS 渲染(如 vue/react 单页应用),纯靠 load 事件不够:资源加载完了,但组件还没 mount,用户仍看到白屏。这时应把 loading 控制权交给框架本身,或用 document.readyState + 自定义加载标记配合。

例如,在入口 JS 执行前就显式控制 loading 层:

  

注意:document.write 在现代开发中慎用,仅适用于极简静态页;复杂项目建议用 document.createElement + document.body.prepend 替代,确保 DOM 存在后再操作。

loading 动画最容易被忽略的其实是「取消机制」——网络请求失败、用户手动刷新、路由跳转时,loading 层若没及时清理,就会永远挂着。别只想着怎么显示,先想好怎么收尾。

text=ZqhQzanResources