轻量级骨架屏设计,让你的页面“薄荷清新”

简介: 轻量级骨架屏设计,让你的页面“薄荷清新”

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. 结论

骨架屏的应用逐渐成为设计和开发中的一项重要技术,它可以缩短页面加载时间,提升用户体验,同时还可以增加品牌认知度。

相关文章
|
机器学习/深度学习 云安全 人工智能
AI威胁检测与预防
AI在网络安全中扮演关键角色,自动化监测和智能分析识别威胁,如恶意软件和钓鱼攻击。AI系统实时响应,调整防御策略,进行风险评估,并通过持续学习提升效能。尽管有误报挑战,AI正强化云安全,助力抵御复杂攻击。
433 2
|
5月前
|
存储 人工智能 数据可视化
规则引擎在医疗实际中的解决方案有哪些?
Together规则引擎通过医疗保健功能集(HFS)实现医疗逻辑自动化,提升互操作性与临床决策效率。它支持可视化建模,集成临床路径与决策支持系统,助力医疗机构优化流程、降低成本,并确保遵循最佳实践与行业标准,适用于医疗管理、临床决策及产品开发等场景。
|
数据库连接 数据库 DataX
数据接入方案
数仓平台可直连或通过从库、堡垒机、FTP/SFTP等方式接入业务数据库,需提供可读用户权限及相应连接方式。若无法直连,可通过提供数据文件或脚本处理实现数据导入。
582 7
数据接入方案
|
缓存 编译器 API
C# 一分钟浅谈:Roslyn 编译器平台介绍
【10月更文挑战第27天】Roslyn 是 Microsoft 开发的开源编译器平台,支持 C# 和 VB.NET。它将编译过程分解为多个阶段,并提供丰富的 API 供开发者分析、生成和修改代码。本文介绍了 Roslyn 的基本概念、安装配置、基础示例和高级应用,帮助开发者更好地理解和使用这一强大工具。
303 0
|
C语言
【C语言】头文件命名详解 - 《铁头无敌 ! 》
头文件在C语言编程中起着组织代码和提高代码复用性的作用。标准头文件提供了丰富的库函数,而自定义头文件可以将常用函数、宏定义、类型定义等封装起来,以便在多个源文件中共享。遵循良好的头文件命名和使用约定,有助于编写清晰、易维护的C语言程序。
456 3
|
存储 C语言
【C语言】输入/输出函数详解
在C语言中,输入/输出操作是通过标准库函数来实现的。这些函数分为两类:标准输入输出函数和文件输入输出函数。
1510 6
|
设计模式 前端开发 C语言
【设计模式】 观察者模式介绍及C代码实现
观察者模式(Observer Pattern)是一种常用的设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有观察者都会收到通知并更新自己的状态。观察者模式又称为发布-订阅模式。Subject(主题):被观察的对象,它将所有观察者对象的引用保存在一个集合中,并提供了添加和删除观察者对象的方法。Observer(观察者):观察者接口,定义了更新自己的状态的方法,以便主题在状态发生变化时通知观察者。ConcreteSubject(具体主题)
798 0
【设计模式】 观察者模式介绍及C代码实现
|
JavaScript
Vue3骨架屏(Skeleton)
该文章介绍了一个名为Skeleton的Vue组件,用于创建加载时的占位符界面,包含多种可配置项如按钮、输入框、图像等,并支持动画效果。
448 0
Vue3骨架屏(Skeleton)
|
开发框架 Dart 前端开发
【Flutter前端技术开发专栏】Flutter中的Web支持:构建跨平台Web应用
【4月更文挑战第30天】Flutter,Google的开源跨平台框架,已延伸至Web领域,让开发者能用同一代码库构建移动和Web应用。Flutter Web通过将Dart代码编译成JavaScript和WASM运行在Web上。尽管性能可能不及原生Web应用,但适合交互性强、UI复杂的应用。开发者应关注性能优化、兼容性测试,并利用Flutter的声明式UI、热重载等优势。随着其发展,Flutter Web为跨平台开发带来更多潜力。
566 0
【Flutter前端技术开发专栏】Flutter中的Web支持:构建跨平台Web应用
|
Ubuntu
蓝易云 - ubuntu系统如何将文件打包成tar.gz
这样,"example"目录就会被打包成"example.tar.gz"文件。
992 0