摘要:原文鏈接骨架屏就是在頁面數據尚未加載前先給用戶展示出頁面的大致結構,直到請求數據返回后再渲染頁面,補充進需要顯示的數據內容。請求處理無論是端還是移動端,只要有數據請求都會出現一定的延遲時間,之前對于這段等待時間的處理也是各不相同。
用戶體驗一直是前端開發需要考慮的重要部分,在數據請求時常見到鎖屏的loading動畫,而現在越來越多的產品傾向于使用Skeleton Screen Loading(骨架屏)替代,以優化用戶體驗。
原文鏈接
Skeleton ScreenSkeleton Screen(骨架屏)就是在頁面數據尚未加載前先給用戶展示出頁面的大致結構,直到請求數據返回后再渲染頁面,補充進需要顯示的數據內容。常用于文章列表、動態列表頁。
請求處理無論是PC端還是移動端,只要有數據請求都會出現一定的延遲時間,之前對于這段等待時間的處理也是各不相同。同步請求中頁面會卡住,直到請求完成,用戶期間無法進行任何操作,有一種死機的感覺,體驗較差。異步請求中大多數會以鎖屏的loading動畫過渡等待時間,于是,也就出現了制作不同loaidng狀態的炫技。
鎖屏loading在一定程度限制了用戶的操作,所以為了進一步提升用戶體驗,Skeleton Screen被越來越多的公司產品采用,如:Facebook、簡書、知乎、掘金等,在動態、文章加載時預先渲染出結構布局,數據加載完成后再填充數據顯示,這樣的好處在于不干擾用戶操作,使用戶對于加載的內容有一個大致的預期,特別是弱網絡環境下極大的優化了用戶體驗。
Skeleton Screen實現主要步驟:
1、創建與顯示內容相似的html結構
2、在需要顯示內容的元素上增加背景色
簡單堆砌出元素結構
css
.skeleton { padding: 10px; } .skeleton .skeleton-head, .skeleton .skeleton-title, .skeleton .skeleton-content { background: rgb(194, 207, 214); } .skeleton-head { width: 100px; height: 100px; float: left; } .skeleton-body { margin-left: 110px; } .skeleton-title { width: 500px; height: 60px; } .skeleton-content { width: 260px; height: 30px; margin-top: 10px; }第二種
背景動畫,html結構相同,修改部分css樣式
.skeleton .skeleton-head, .skeleton .skeleton-title, .skeleton .skeleton-content { background: rgb(194, 207, 214); background-image: linear-gradient(90deg,rgba(255, 255, 255, 0.15) 25%, transparent 25%); background-size: 20rem 20rem; animation: skeleton-stripes 1s linear infinite; } @keyframes skeleton-stripes { from { background-position: 0 0 ; } to { background-position: 20rem 0; } }第三種
元素結構長度變化
.skeleton { padding: 10px; } .skeleton .skeleton-head, .skeleton .skeleton-title, .skeleton .skeleton-content { background: rgb(194, 207, 214); } .skeleton-head { width: 100px; height: 100px; float: left; } .skeleton-body { margin-left: 110px; } .skeleton-title { width: 500px; height: 60px; transform-origin: left; animation: skeleton-stretch .5s linear infinite alternate; } .skeleton-content { width: 260px; height: 30px; margin-top: 10px; transform-origin: left; animation: skeleton-stretch .5s -.3s linear infinite alternate; } @keyframes skeleton-stretch { from { transform: scalex(1); } to { transform: scalex(.3); } }總結
前端優化仿佛是一種無止境的探索,尤其是現在產品對于用戶體驗的重視,任何一點體驗的改善與提升都會增加用戶的友好度,最終使產品留下一個好印象。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/113020.html
摘要:原文鏈接骨架屏就是在頁面數據尚未加載前先給用戶展示出頁面的大致結構,直到請求數據返回后再渲染頁面,補充進需要顯示的數據內容。請求處理無論是端還是移動端,只要有數據請求都會出現一定的延遲時間,之前對于這段等待時間的處理也是各不相同。 showImg(https://segmentfault.com/img/bV9l7N?w=700&h=312);用戶體驗一直是前端開發需要考慮的重要部分,...
摘要:第二套方案,一定程度上改善了第一套方案帶來的維護成本增加的缺點,主要還是使用工具預渲染頁面,獲取到節點和樣式,保留頁面結構,覆蓋樣式,生成灰色塊蓋在原有文本圖片或者是等節點上面,最后將生成的和打包出來,就是一個帶有骨架屏的頁面。 首屏 一般情況下,在首屏數據未拿到之前,為了提升用戶的體驗,會在頁面上展示一個loading的圖層,類似下面這個showImg(https://segment...
摘要:如何在下搭建多模塊單模塊多路由骨架屏前言骨架屏的用戶感知比更好,此前看過很多專欄以及文章,此次實踐中還是遇到需要學習的部分。包括因為可能信息面不全,對插件源碼進行了詳細解讀,希望對于將要在項目中搭建骨架屏的小伙伴們有所幫助。 如何在webpack+vue+vue-cli下搭建多模塊/單模塊多路由骨架屏 前言 骨架屏的用戶感知比loading更好,此前看過很多專欄以及文章,此次實踐中還是...
摘要:如何在下搭建多模塊單模塊多路由骨架屏前言骨架屏的用戶感知比更好,此前看過很多專欄以及文章,此次實踐中還是遇到需要學習的部分。包括因為可能信息面不全,對插件源碼進行了詳細解讀,希望對于將要在項目中搭建骨架屏的小伙伴們有所幫助。 如何在webpack+vue+vue-cli下搭建多模塊/單模塊多路由骨架屏 前言 骨架屏的用戶感知比loading更好,此前看過很多專欄以及文章,此次實踐中還是...
github 地址: VV-UI/VV-UI 演示地址: vv-ui 文檔地址:skeleton 關于骨架屏介紹 骨架屏的作用主要是在網絡請求較慢時,提供基礎占位,當數據加載完成,恢復數據展示。這樣給用戶一種很自然的過渡,不會造成頁面長時間白屏或者閃爍等情況。 常見的骨架屏實現方案有ssr服務端渲染和prerender兩種解決方案。這里主要通過代碼為大家展示如何一步步做出這樣一個骨架屏: show...
閱讀 4510·2021-09-22 14:57
閱讀 554·2019-08-30 15:56
閱讀 2657·2019-08-30 15:53
閱讀 2234·2019-08-29 14:15
閱讀 1684·2019-08-28 17:54
閱讀 553·2019-08-26 13:37
閱讀 3471·2019-08-26 10:57
閱讀 1040·2019-08-26 10:32