摘要:原文鏈接骨架屏就是在頁面數(shù)據(jù)尚未加載前先給用戶展示出頁面的大致結(jié)構(gòu),直到請求數(shù)據(jù)返回后再渲染頁面,補(bǔ)充進(jìn)需要顯示的數(shù)據(jù)內(nèi)容。請求處理無論是端還是移動(dòng)端,只要有數(shù)據(jù)請求都會(huì)出現(xiàn)一定的延遲時(shí)間,之前對于這段等待時(shí)間的處理也是各不相同。
用戶體驗(yàn)一直是前端開發(fā)需要考慮的重要部分,在數(shù)據(jù)請求時(shí)常見到鎖屏的loading動(dòng)畫,而現(xiàn)在越來越多的產(chǎn)品傾向于使用Skeleton Screen Loading(骨架屏)替代,以優(yōu)化用戶體驗(yàn)。
原文鏈接
Skeleton ScreenSkeleton Screen(骨架屏)就是在頁面數(shù)據(jù)尚未加載前先給用戶展示出頁面的大致結(jié)構(gòu),直到請求數(shù)據(jù)返回后再渲染頁面,補(bǔ)充進(jìn)需要顯示的數(shù)據(jù)內(nèi)容。常用于文章列表、動(dòng)態(tài)列表頁。
請求處理無論是PC端還是移動(dòng)端,只要有數(shù)據(jù)請求都會(huì)出現(xiàn)一定的延遲時(shí)間,之前對于這段等待時(shí)間的處理也是各不相同。同步請求中頁面會(huì)卡住,直到請求完成,用戶期間無法進(jìn)行任何操作,有一種死機(jī)的感覺,體驗(yàn)較差。異步請求中大多數(shù)會(huì)以鎖屏的loading動(dòng)畫過渡等待時(shí)間,于是,也就出現(xiàn)了制作不同loaidng狀態(tài)的炫技。
鎖屏loading在一定程度限制了用戶的操作,所以為了進(jìn)一步提升用戶體驗(yàn),Skeleton Screen被越來越多的公司產(chǎn)品采用,如:Facebook、簡書、知乎、掘金等,在動(dòng)態(tài)、文章加載時(shí)預(yù)先渲染出結(jié)構(gòu)布局,數(shù)據(jù)加載完成后再填充數(shù)據(jù)顯示,這樣的好處在于不干擾用戶操作,使用戶對于加載的內(nèi)容有一個(gè)大致的預(yù)期,特別是弱網(wǎng)絡(luò)環(huán)境下極大的優(yōu)化了用戶體驗(yàn)。
Skeleton Screen實(shí)現(xiàn)主要步驟:
1、創(chuàng)建與顯示內(nèi)容相似的html結(jié)構(gòu)
2、在需要顯示內(nèi)容的元素上增加背景色
簡單堆砌出元素結(jié)構(gòu)
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; }第二種
背景動(dòng)畫,html結(jié)構(gòu)相同,修改部分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; } }第三種
元素結(jié)構(gòu)長度變化
.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); } }總結(jié)
前端優(yōu)化仿佛是一種無止境的探索,尤其是現(xiàn)在產(chǎn)品對于用戶體驗(yàn)的重視,任何一點(diǎn)體驗(yàn)的改善與提升都會(huì)增加用戶的友好度,最終使產(chǎn)品留下一個(gè)好印象。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/113020.html
摘要:原文鏈接骨架屏就是在頁面數(shù)據(jù)尚未加載前先給用戶展示出頁面的大致結(jié)構(gòu),直到請求數(shù)據(jù)返回后再渲染頁面,補(bǔ)充進(jìn)需要顯示的數(shù)據(jù)內(nèi)容。請求處理無論是端還是移動(dòng)端,只要有數(shù)據(jù)請求都會(huì)出現(xiàn)一定的延遲時(shí)間,之前對于這段等待時(shí)間的處理也是各不相同。 showImg(https://segmentfault.com/img/bV9l7N?w=700&h=312);用戶體驗(yàn)一直是前端開發(fā)需要考慮的重要部分,...
摘要:第二套方案,一定程度上改善了第一套方案帶來的維護(hù)成本增加的缺點(diǎn),主要還是使用工具預(yù)渲染頁面,獲取到節(jié)點(diǎn)和樣式,保留頁面結(jié)構(gòu),覆蓋樣式,生成灰色塊蓋在原有文本圖片或者是等節(jié)點(diǎn)上面,最后將生成的和打包出來,就是一個(gè)帶有骨架屏的頁面。 首屏 一般情況下,在首屏數(shù)據(jù)未拿到之前,為了提升用戶的體驗(yàn),會(huì)在頁面上展示一個(gè)loading的圖層,類似下面這個(gè)showImg(https://segment...
摘要:如何在下搭建多模塊單模塊多路由骨架屏前言骨架屏的用戶感知比更好,此前看過很多專欄以及文章,此次實(shí)踐中還是遇到需要學(xué)習(xí)的部分。包括因?yàn)榭赡苄畔⒚娌蝗瑢Σ寮创a進(jìn)行了詳細(xì)解讀,希望對于將要在項(xiàng)目中搭建骨架屏的小伙伴們有所幫助。 如何在webpack+vue+vue-cli下搭建多模塊/單模塊多路由骨架屏 前言 骨架屏的用戶感知比loading更好,此前看過很多專欄以及文章,此次實(shí)踐中還是...
摘要:如何在下搭建多模塊單模塊多路由骨架屏前言骨架屏的用戶感知比更好,此前看過很多專欄以及文章,此次實(shí)踐中還是遇到需要學(xué)習(xí)的部分。包括因?yàn)榭赡苄畔⒚娌蝗?,對插件源碼進(jìn)行了詳細(xì)解讀,希望對于將要在項(xiàng)目中搭建骨架屏的小伙伴們有所幫助。 如何在webpack+vue+vue-cli下搭建多模塊/單模塊多路由骨架屏 前言 骨架屏的用戶感知比loading更好,此前看過很多專欄以及文章,此次實(shí)踐中還是...
github 地址: VV-UI/VV-UI 演示地址: vv-ui 文檔地址:skeleton 關(guān)于骨架屏介紹 骨架屏的作用主要是在網(wǎng)絡(luò)請求較慢時(shí),提供基礎(chǔ)占位,當(dāng)數(shù)據(jù)加載完成,恢復(fù)數(shù)據(jù)展示。這樣給用戶一種很自然的過渡,不會(huì)造成頁面長時(shí)間白屏或者閃爍等情況。 常見的骨架屏實(shí)現(xiàn)方案有ssr服務(wù)端渲染和prerender兩種解決方案。這里主要通過代碼為大家展示如何一步步做出這樣一個(gè)骨架屏: show...
閱讀 4604·2021-09-22 14:57
閱讀 565·2019-08-30 15:56
閱讀 2672·2019-08-30 15:53
閱讀 2245·2019-08-29 14:15
閱讀 1691·2019-08-28 17:54
閱讀 564·2019-08-26 13:37
閱讀 3483·2019-08-26 10:57
閱讀 1049·2019-08-26 10:32