在古代前端开发中,用户体验和性能优化始终是小伙伴们谋求的指标之一。骨架屏(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;
骨架屏的最佳实际
放弃骨架屏与理论内容的一致性
为了确保用户不会感知到内容的“跳动”,骨架屏的构造和款式应该与最终加载的内容统一。
应用占位符
占位符能够帮忙页面保持稳定的布局,避免内容在加载实现前产生大的布局变动。
优化骨架屏的性能
为了进步性能,应该减小骨架屏的大小,并确保它们以最快的速度加载。
总结
骨架屏技术是进步前端性能和用户体验的有要害一环。通过在加载过程中提供视觉反馈,骨架屏可能缩小用户等待时间,减少用户留存率,从而晋升了用户满意度。
无论你是在开发单页利用、多页利用,还是挪动利用,都能够思考将骨架屏技术融入你的我的项目中,为用户带来更疾速、更晦涩的体验。