在古代前端开发中,用户体验和性能优化始终是小伙伴们谋求的指标之一。骨架屏(Skeleton Screen)作为一种优化用户界面加载速度的办法,利用在各种(App/小程序/h5)利用外面。本文将深入探讨骨架屏的最佳实际,联合代码案例,介绍如何实现和优化骨架屏。

什么是骨架屏?

骨架屏是一种在页面加载过程中,以占位符模式展现页面构造的技术。它通过显示简略的灰色块和线条,让用户在期待内容加载时取得视觉反馈,进步了用户的满意度。

为什么须要骨架屏?

在挪动设施和慢速网络环境下,页面加载速度变得尤为要害。用户不愿期待长时间能力看到页面内容。骨架屏可能在内容加载齐全之前疾速展现页面构造,让用户感触到页面加载的进度,从而进步了用户体验。

应用纯 CSS 实现骨架屏

实现骨架屏的办法有很多,能够应用纯CSS,也能够应用SVG,甚至还能够利用一些前端库。上面咱们以一个简略的纯CSS实现为例。

1、实现简略的html骨架页面

<!DOCTYPE html><html lang="en"><head>  <meta charset="UTF-8">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>Skeleton Example</title></head><body> <div class="skeleton">  <div class="skeleton-header"></div>  <div class="skeleton-body">    <div class="skeleton-line"></div>    <div class="skeleton-line"></div>    <div class="skeleton-line"></div>  </div></div></body></html>

2、实现骨架屏款式

/* skeleton.css */.skeleton {  width: 300px;  padding: 20px;  background-color: #f6f7f8;}.skeleton-header {  width: 100%;  height: 200px;  background-color: #e0e0e0;}.skeleton-body .skeleton-line {  width: 100%;  height: 20px;  margin-top: 20px;  background-color: #e0e0e0;}


实现成果如图,骨架屏尽管简略,但要做得好,还能够进一步优化。

3、骨架屏优化

/* CSS */@keyframes shimmer {  0% {    background-position: -468px 0;  }  100% {    background-position: 468px 0;  }}.skeleton-header, .skeleton-body .skeleton-line {  animation-duration: 1.25s;  animation-fill-mode: forwards;  animation-iteration-count: infinite;  animation-name: shimmer;  animation-timing-function: linear;  background: #f6f7f8;  background: linear-gradient(to right, #eeeeee 8%, #dddddd 18%, #eeeeee 33%);  background-size: 800px 104px;  position: relative;}

以上代码为骨架屏增加了一个流动光影的动画成果,使得骨架屏看起来更有生机。

基于预渲染的骨架屏

基于预渲染的骨架屏技术通过服务器端渲染(SSR)或动态站点生成(SSG)提前生成页面的骨架,而后在客户端加载时填充内容,从而进步性能和SEO。

应用react-loading-skeleton创立骨架屏

import React from 'react';import Skeleton from 'react-loading-skeleton';function UserProfile() {  return (    <div>      <h2>User Profile</h2>      <div className="user-details">        <Skeleton height={100} width={100} circle={true} />        <div className="user-info">          <Skeleton height={20} width={200} />          <Skeleton height={20} width={200} />          <Skeleton height={20} width={200} />        </div>      </div>    </div>  );}export default UserProfile;

骨架屏的最佳实际

放弃骨架屏与理论内容的一致性

为了确保用户不会感知到内容的“跳动”,骨架屏的构造和款式应该与最终加载的内容统一。

应用占位符

占位符能够帮忙页面保持稳定的布局,避免内容在加载实现前产生大的布局变动。

优化骨架屏的性能

为了进步性能,应该减小骨架屏的大小,并确保它们以最快的速度加载。

总结

骨架屏技术是进步前端性能和用户体验的有要害一环。通过在加载过程中提供视觉反馈,骨架屏可能缩小用户等待时间,减少用户留存率,从而晋升了用户满意度。

无论你是在开发单页利用、多页利用,还是挪动利用,都能够思考将骨架屏技术融入你的我的项目中,为用户带来更疾速、更晦涩的体验。