Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 代码发布 › 「技术教程」CSS技巧打造SPA首屏骨架屏 | 实现快速加载和用户友好的首屏骨架结构

「技术教程」CSS技巧打造SPA首屏骨架屏 | 实现快速加载和用户友好的首屏骨架结构

Eswlnk的头像
Eswlnk
2023-12-12 0:33:46
「技术教程」CSS技巧打造SPA首屏骨架屏 | 实现快速加载和用户友好的首屏骨架结构-Eswlnk Blog
智能摘要 AI
作者介绍了利用原生CSS实现首屏骨架加载的技术,无需单独创建骨架文件或修改HTML结构。通过`background-image`的多重渐变与`animation`实现动态效果,并用`:empty`伪类检测元素是否为空。示例代码展示了如何实现复杂的骨架布局,背景图片重复覆盖以模拟加载状态,且兼容不同屏幕尺寸。此方法简洁高效,适合快速实现首屏加载效果。

前言

最近我掌握了一项新技能,利用原生CSS来实现首屏骨架。这不仅可以避免在Home.vue组件中单独创建骨架,而且无需对HTML结构进行任何修改。

让我们先来看一下预览图:

「技术教程」CSS技巧打造SPA首屏骨架屏 | 实现快速加载和用户友好的首屏骨架结构-Eswlnk Blog

效果还是相当不错的。

教程

这项技术的原理是利用background-image的多重渐变来实现骨架占位,结合background-size和background-position进行精准定位。如果你的骨架包含大量重复内容,还可以配置background-repeat: repeat-y;来进行Y轴重复渲染,效果更为出色。

通过动画控制整体透明度的变化,我们实现了动态效果。而通过使用:empty伪类,我们可以判断#app是否渲染。:empty会在对应的元素内部没有任何内容时生效。

不多说,让我们直接看代码:

html,
body,
#app {
    margin: 0;
    padding: 0;
    height: 100%;
}

body {
    background-color: #12161f;
}

#app:empty {
    background-image: linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352), linear-gradient(90deg, #262c3b 30px, #3e4352);
    background-size: 350px 30px, 350px 100px, 350px 30px, 110px 40px, 110px 40px, 110px 40px, 350px 30px, 350px 40px, 110px 150px, 110px 150px, 110px 150px, 110px 40px, 110px 40px, 110px 40px, 350px 80px, 350px 80px, 350px 80px;
    background-position: 12.5px 10px, 12.5px 50px, 12.5px 160px, 12.5px 200px, 132.5px 200px, 252.5px 200px, 12.5px 250px, 12.5px 290px, 12.5px 340px, 132.5px 340px, 252.5px 340px, 12.5px 520px, 132.5px 520px, 252.5px 520px, 12.5px 570px, 12.5px 660px, 12.5px 750px;
    background-repeat: no-repeat;
    animation: theme1-skeleton-blink 1.2s ease-in-out infinite;
}

@keyframes theme1-skeleton-blink {
    50% {
        opacity: 0.6;
    }
}

我这骨架略微复杂,就没有使用y轴重复。

这里基本就行了,由于vite会对index.html中的style样式进行转换,所以如果你使用了rem或者vw,得到最终css其实是已经单位转换后的值,所以大小屏适配也没有问题了。

「技术教程」CSS技巧打造SPA首屏骨架屏 | 实现快速加载和用户友好的首屏骨架结构-Eswlnk Blog
本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
vue代码
1
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
摆脱Vite + Vue 3白屏困扰的终极指南 | 深入探索,轻松应对
上一篇
「技术教程」定制项目包管理器 | 使用生命周期脚本限制只允许特定包管理器
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 小工具开发之EdgeOne免费计划兑换工具
  • 「日志记录」逆向必应翻译网页版API实现免费调用
  • 「渗透分析」如何防范JS注入?nbcio-boot代码审计攻略大公开
  • 「代码分享」第三方平台VIP视频解析API接口
  • 「至臻原创」某系统网站登录功能监测
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

「古腾堡区块分享」关注微信公众号回复关键字获取口令区块
2023-11-29 0:45:56
「技术教程」深入探索:实战虚函数表劫持(RealPwn-1)
2024-02-08 20:48:49
「代码分享」Nestjs与Prisma多环境变量文件解决方案
2023-12-29 0:15:28

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.896 秒   |  SQL查询 43 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈