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

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

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

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

相关文章
|
前端开发
前端切图:自制简易音乐播放器
前端切图:自制简易音乐播放器
88 0
|
5月前
|
JavaScript 前端开发 开发者
uniapp实战 —— 骨架屏
uniapp实战 —— 骨架屏
168 0
|
6月前
|
图形学
【unity小技巧】Unity人物衣服布料系统的探究 —— Cloth组件
【unity小技巧】Unity人物衣服布料系统的探究 —— Cloth组件
249 0
|
移动开发 前端开发 JavaScript
分享8个前端可以制作360度WebVr全景视图框架
分享8个前端可以制作360度WebVr全景视图框架
1828 0
分享8个前端可以制作360度WebVr全景视图框架
|
算法 图形学 开发者
超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen(1)
超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen
179 0
|
存储 数据挖掘 开发者
超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen(2)
超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen
128 0
|
存储 缓存 算法
超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen(3)
超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen
135 0
|
存储 数据挖掘 开发者
超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen
超逼真渲染!虚幻引擎技术大牛解读全局光照系统Lumen
127 0
|
前端开发
用MVVM模式开发中遇到的零散问题总结(4)——自制摄像头拍摄大头贴控件
原文:用MVVM模式开发中遇到的零散问题总结(4)——自制摄像头拍摄大头贴控件      一直有个疑问,为什么silverlight对摄像头支持这么好,WPF却一个库都没有....于是我各种苦恼啊,各种CodeProject啊,终于让我找到海外兄弟写的源码了,原理是通过不断向摄像头读取图片不断刷新到窗体控件上。
1029 0
|
安全 C# 存储
通通玩blend美工(5)——旋转木马,交互性设计
原文:通通玩blend美工(5)——旋转木马,交互性设计       这一篇偏向于逻辑的比较多,放在这个系列里会不会欠妥呢?在中国交互性设计也是美工的份内职责哦~   所以没有blend基础的人也可以看懂这篇文章,不过要用到初中的几何知识哦~亲     相信很多人都在手机或者网页上或者K...
1018 0