骨架渲染塌陷主因是未设尺寸,须显式定义宽高;流光动画应基于background-position实现;DOM替换需结构对齐且禁用innerHTML;IntersectionObserver需合理配置rootMargin;骨架必须早于JS加载。

骨架元素一渲染就塌掉,90% 是没设尺寸
空 必须显式设置尺寸: 核心写法只有三行 CSS: 注意点: 用 生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力:
- 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面;
- 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”;
- 提及位于 `apps/console/src/featur 安全替换方式只有两种: 监听 关键配置项: 最常被忽略的点:骨架不是“加个动画就行”,而是要从 HTML 解析阶段就存在 —— 它得比 JS 更早出现。Vue 中 background-color 帮不上忙。浏览器不会为你“猜”高度,文字行、图片区域、按钮都会挤成一团,后续真实内容插入必然重排闪动。
line-height × 行数 算高,比如三行摘要就写 height: 48px(假设 line-height: 16px),禁用 height: 100% —— 父容器没高时它直接失效aspect-ratio: 16 / 9;不支持的旧浏览器 fallback 到 padding-top: 56.25% + position: relative + 子元素 position: absolute
min-width/min-height,别依赖 width: 100% —— 容器宽度可能还没确定overflow: hidden,否则渐变动画会从圆角边缘溢出流光动画别用 opacity 或 transform,用 background-position
opacity 淡入淡出或 transform: translateX() 移动伪元素,在中低端设备上容易掉帧;真正稳定的是纯背景位移动画,GPU 合成友好、不触发重绘。background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
background-size: 200% 100%;
animation: loading 2s linear infinite;
@keyframes loading { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
ease-in-out —— 光效会在两端停顿,显得卡顿;必须用 linear
@media (prefers-reduced-motion: reduce) { animation: none; }
DOM 替换必须结构对齐,不能靠 innerHTML 清空再塞新 HTML
element.innerHTML = '' 清掉骨架再插入真实 HTML,会导致 Vue/React 组件状态丢失、第三方插件(如代码高亮、图表)没重初始化、focus 断掉、SSR hydration 错位。
预存真实结构,加载完成后调用 skeletonEl.replaceWith(realContent) —— DOM 节点完全替换,结构、class、data 属性全对齐data-id)、甚至注释位置**;哪怕多一个空格,hydration 都可能失败v-show 或 visibility: hidden 控制显隐 —— 它们仍参与布局计算,SSR 场景下 hydration 会错位无限滚动中骨架接续卡顿,根因是 IntersectionObserver 配置不当
window.onscroll 手动算滚动位置,高频触发、易误判、性能差;而用 IntersectionObserver 监听页尾占位符,才是稳定方案。
rootMargin: '200px' —— 提前 200px 触发加载,留出网络与渲染缓冲,避免用户看到空白unobserve() 当前占位符;加载成功且有更多数据时,再 observe() 新占位符 —— 防止重复请求hasMore: true/false,前端据此决定是否继续挂载 observerloading: true 必须在 setup() 顶层声明,React 中 useState(true) 初始化后立即发起请求并保持 loading 状态,否则用户第一眼看到的仍是白屏。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










