网站首页 > 技术文章 正文
I. 介绍骨架屏
定义
骨架屏是一个简单的占位图,用于在内容加载过程中给用户展示一个占位界面,让用户知道正在加载中。
产生背景
随着Web应用日益复杂,加载时间相应增长,用户往往需要很长时间才能看到完整的界面;而骨架屏就是为了缩短加载时间,提升用户体验而产生的。
II. 骨架屏的设计原则
模拟真实界面
骨架屏要体现完整的页面结构,并模拟真实的UI元素,使用户能够快速熟悉页面内容。
简单设计
骨架屏要避免过于花哨的设计,保持简洁,以提高用户的可读性和认知可靠性。
可重复使用
骨架屏应该可以在多个页面内使用,以避免在每个页面上使用不同的骨架屏,这样可以提高设计和开发效率。
III. 骨架屏的实现
使用CSS和JavaScript
使用CSS和JavaScript实现骨架屏是最常见的一种方法,通过隐藏或展示元素,以达到占位或显示的效果。
<!DOCTYPE html>
<html>
<head>
<title>骨架屏实现demo</title>
<style>
.container {
padding: 10px;
}
.skeleton {
height: 50px;
margin-bottom: 10px;
background-color: #ddd;
border-radius: 5px;
animation: loading 1s ease-in-out infinite;
}
@keyframes loading {
from {
background-position: 0 0;
}
to {
background-position: 100% 0;
}
}
</style>
</head>
<body>
<div class="container">
<div class="skeleton"></div>
<div class="skeleton"></div>
<div class="skeleton"></div>
<div class="skeleton"></div>
<div class="skeleton"></div>
</div>
<script>
window.addEventListener('load', function() {
var skeletonBlocks = document.querySelectorAll('.skeleton');
skeletonBlocks.forEach(function(block) {
block.style.width = block.offsetWidth + 'px';
});
});
</script>
</body>
</html>
预渲染技术
通过预渲染技术,将骨架屏作为静态页面一并传送给浏览器,以缩短页面加载时间。
<!DOCTYPE html>
<html>
<head>
<title>骨架屏预渲染实现</title>
<style>
#container {
padding: 10px;
}
.skeleton {
height: 50px;
margin-bottom: 10px;
background-color: #ddd;
border-radius: 5px;
animation: loading 1s ease-in-out infinite;
}
@keyframes loading {
from {
background-position: 0 0;
}
to {
background-position: 100% 0;
}
}
</style>
</head>
<body>
<div id="container">
<div class="skeleton"></div>
<div class="skeleton"></div>
<div class="skeleton"></div>
<div class="skeleton"></div>
<div class="skeleton"></div>
</div>
<div id="content" style="display: none;">
<!-- 正常内容 -->
<p>这里是正常的内容</p>
</div>
<script type="text/javascript">
window.onload = function(){
setTimeout(()=>{
document.getElementById('container').style.display = 'none';
document.getElementById('content').style.display = 'block';
},1500)
}
</script>
</body>
</html>
模板
通过使用模板,可以更容易地生成骨架屏,以加快页面加载时间。
小程序
vant weapp Skeleton 骨架屏
IV. 骨架屏的优势
缩短加载时间
骨架屏可以吸引用户的眼球,与此同时,让用户感受到页面正在加载中,从而减少用户的焦虑感,提升用户对应用体验的满意度。
提高用户留存率
大多数用户并不在意应用程序加载的快慢,但往往会因为等待时间长而放弃访问或离开应用程序。因此,骨架屏可以大大降低用户的流失率。
提高品牌认知度
通过设计良好的骨架屏,可以提高用户对于品牌的认知度,进而增加品牌的知名度和信誉度。
V. 结论
骨架屏的应用逐渐成为设计和开发中的一项重要技术,它可以缩短页面加载时间,提升用户体验,同时还可以增加品牌认知度。
猜你喜欢
- 2024-10-30 基于Web的“戳泡泡”解压小游戏(戳泡泡用英文怎么说)
- 2024-10-30 暗夜发光,独自闪耀,网页暗黑模式下的特效和动效,CSS3实现
- 2024-10-30 HTML多行代码搞定微信8.0的炸裂特效!C/C++怎么能输
- 2024-10-30 Nick_N像素画教程:像素画动画缓入缓出
- 2024-10-30 CSS动画制作(css动画制作电池充电效果)
- 2024-10-30 前端系列:在线认识贝塞尔曲线的运动轨迹(中文版网站)
- 2024-10-30 CSS3 transition过渡效果(css3过度效果)
- 2024-10-30 15个CSS 常见错误,请一定要注意避免
- 2024-10-30 css动画之transition(css transition动画)
- 2024-10-30 daisyUI - 主题漂亮、代码纯净!免费开源的 Tailwind CSS 组件库
- 1507℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 505℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 484℃MySQL service启动脚本浅析(r12笔记第59天)
- 465℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 462℃启用MySQL查询缓存(mysql8.0查询缓存)
- 442℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 422℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 418℃MySQL server PID file could not be found!失败
- 最近发表
-
- netty系列之:搭建HTTP上传文件服务器
- 让deepseek教我将deepseek接入word
- 前端大文件分片上传断点续传(前端大文件分片上传断点续传怎么操作)
- POST 为什么会发送两次请求?(post+为什么会发送两次请求?怎么回答)
- Jmeter之HTTP请求与响应(jmeter运行http请求没反应)
- WAF-Bypass之SQL注入绕过思路总结
- 用户疯狂点击上传按钮,如何确保只有一个上传任务在执行?
- 二 计算机网络 前端学习 物理层 链路层 网络层 传输层 应用层 HTTP
- HTTP请求的完全过程(http请求的基本过程)
- dart系列之:浏览器中的舞者,用dart发送HTTP请求
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)