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

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

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

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

相关文章
|
前端开发
前端切图:自制简易音乐播放器
前端切图:自制简易音乐播放器
95 0
|
6月前
|
API
【threejs教程】场景视角切换的神器:轨道控制器
【8月更文挑战第5天】threejs教程:场景视角切换的神器,轨道控制器
390 1
|
6月前
|
容器 iOS开发 Linux
震惊!Uno Platform 响应式 UI 构建秘籍大公开!从布局容器到自适应设计,带你轻松打造跨平台完美界面
【8月更文挑战第31天】Uno Platform 是一款强大的跨平台应用开发框架,支持 Web、桌面(Windows、macOS、Linux)及移动(iOS、Android)等平台,仅需单一代码库。本文分享了四个构建响应式用户界面的最佳实践:利用布局容器(如 Grid)适配不同屏幕尺寸;采用自适应布局调整 UI;使用媒体查询定制样式;遵循响应式设计原则确保 UI 元素自适应调整。通过这些方法,开发者可以为用户提供一致且优秀的多设备体验。
261 0
|
7月前
|
JavaScript 前端开发 开发者
uniapp实战 —— 骨架屏
uniapp实战 —— 骨架屏
196 0
|
Web App开发 数据采集 缓存
你不可能知道的骨架屏玩法!
骨架屏基本就是详细页面元素未展现时,把DOM结构通过线条勾勒出来。而对于C端的营销类活动页面来说,并没有比较标准的骨架,每个活动有自己的轮廓,那怎么办呢?
你不可能知道的骨架屏玩法!
|
前端开发
用MVVM模式开发中遇到的零散问题总结(4)——自制摄像头拍摄大头贴控件
原文:用MVVM模式开发中遇到的零散问题总结(4)——自制摄像头拍摄大头贴控件      一直有个疑问,为什么silverlight对摄像头支持这么好,WPF却一个库都没有....于是我各种苦恼啊,各种CodeProject啊,终于让我找到海外兄弟写的源码了,原理是通过不断向摄像头读取图片不断刷新到窗体控件上。
1038 0