如何在微信小程序中使用骨架屏的步驟
本文介紹了微信小程序中使用骨架屏,分享給大家,具體如下:
先上效果圖
骨架屏主要起到占位作用,向用戶說(shuō)明該區(qū)域有內(nèi)容,有一定的心理準(zhǔn)備。
聊聊背景:剛上線一款小程序,隨著上架的東西越來(lái)越多,微信小程序加載越來(lái)越慢,會(huì)出現(xiàn)一段時(shí)間的白屏(大概2-3s),這對(duì)用戶體驗(yàn)上來(lái)講特別不友好。所以在網(wǎng)上開(kāi)始找這方面的資料,骨架屏主要分為兩種方案,下面來(lái)說(shuō)說(shuō)這兩種方案。
1、為每個(gè)需要使用骨架屏的頁(yè)面定制一套靜態(tài)頁(yè)面。這種方法缺點(diǎn)很明顯,需要為每個(gè)頁(yè)面單獨(dú)定制,布局如果修改則需要同時(shí)修改兩個(gè)頁(yè)面,增加了維護(hù)成本。但這種特別適用于長(zhǎng)列表,只需要做用戶可見(jiàn)的部分,可在一定程度上增加響應(yīng)速度。
2、利用工具渲染頁(yè)面 , 獲取指定的DOM節(jié)點(diǎn)和對(duì)應(yīng)樣式,生成灰色塊覆蓋在原來(lái)的樣式結(jié)構(gòu)上,從而實(shí)現(xiàn)骨架屏。這種方式簡(jiǎn)單易用好維護(hù),個(gè)人感覺(jué)不太適合在長(zhǎng)列表頁(yè)面。https://github.com/jayZOU/skeleton 這款骨架屏組件輕量、方便、快捷,里面有教程,強(qiáng)烈推薦。
使用哪一種方案,就要根據(jù)自己的項(xiàng)目情況來(lái)進(jìn)行選擇了。我采用的是第一種,因?yàn)檫@個(gè)頁(yè)面加載的DOM節(jié)點(diǎn)太多了。從獲取到數(shù)據(jù)后到渲染到頁(yè)面這段時(shí)間有骨架屏做緩沖,效果倍棒。
實(shí)現(xiàn)方法:
1、根據(jù)原有頁(yè)面的結(jié)構(gòu),在重寫(xiě)一個(gè)靜態(tài)頁(yè)面,把原來(lái)用來(lái)顯示圖片、文字的地方替換成有灰色背景色的塊。
<!--骨架屏 --> <view class="sort" wx:if="{{showSkeleton}}"> <scroll-view scroll-y="true" class="sortlist" style="height:{{contentHeight-170}}rpx"> <view class="sort-l" > <view class="sort-lgj"></view> </view> <view class="sort-l" > <view class="sort-lgj"></view> </view> <view class="sort-l" > <view class="sort-lgj"></view> </view> <view class="sort-l" > <view class="sort-lgj"></view> </view> <view class="sort-l" > <view class="sort-lgj"></view> </view> <view class="sort-l" > <view class="sort-lgj"></view> </view> </scroll-view> </view > <view class="sort" wx:else> 這里是原來(lái)的頁(yè)面 </view >
2、使用一個(gè)變量來(lái)控制骨架屏的顯示或隱藏。
onLoad: function(options) { var that = this wx.request({ url:'xxxx', //請(qǐng)求地址 data: { //發(fā)送給后臺(tái)的數(shù)據(jù) xxxx: xxxx }, header: { //請(qǐng)求頭 "Content-Type": "applciation/json" }, method: "GET", success: function(res) { that.setData({ goodslist: data }) that.setData({ // 數(shù)據(jù)渲染后 showSkeleton: false }) }, fail: function(err) { } }) }
總結(jié)一下:數(shù)據(jù)較多的頁(yè)面使用骨架屏可以大大提高用戶體驗(yàn)。上文提到的骨架屏組件也是非常好用,幾分鐘就可以上手使用。
初次接觸骨架屏,有理解不到的地方還請(qǐng)多多指正。
到此這篇關(guān)于如何在微信小程序中使用骨架屏的步驟的文章就介紹到這了,更多相關(guān)小程序使用骨架屏內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中0和""比較引發(fā)的問(wèn)題
這篇文章主要介紹了JavaScript中0和""比較引發(fā)的問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05原生JS實(shí)現(xiàn)移動(dòng)端web輪播圖詳解(結(jié)合Tween算法造輪子)
在做移動(dòng)端開(kāi)發(fā)的時(shí)候,必不可少的是輪播圖,下面這篇文章主要給大家介紹了關(guān)于利用純JS實(shí)現(xiàn)移動(dòng)端web輪播圖的相關(guān)資料,重要的是結(jié)合Tween算法造輪子,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-09-09使用JavaScript?將數(shù)據(jù)網(wǎng)格綁定到?GraphQL?服務(wù)的操作方法
GraphQL是管理JavaScript應(yīng)用程序中數(shù)據(jù)的優(yōu)秀工具,本教程展示了GraphQL和SpreadJS如何簡(jiǎn)單地構(gòu)建應(yīng)用程序,?GraphQL?和?SpreadJS都有更多功能可供探索,因此您可以做的事情遠(yuǎn)遠(yuǎn)超出了這個(gè)示例,感興趣的朋友一起看看吧2023-11-11SSM+layUI 根據(jù)登錄信息顯示不同的頁(yè)面方法
今天小編就為大家分享一篇SSM+layUI 根據(jù)登錄信息顯示不同的頁(yè)面方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-09-09通過(guò)JAVASCRIPT讀取ASP設(shè)定的COOKIE
通過(guò)JAVASCRIPT讀取ASP設(shè)定的COOKIE...2006-11-11在JavaScript中使用inline函數(shù)的問(wèn)題
在JavaScript中使用inline函數(shù)的問(wèn)題...2007-03-03從零開(kāi)始用electron手?jǐn)]一個(gè)截屏工具的示例代碼
這篇文章主要介紹了從零開(kāi)始用electron手?jǐn)]一個(gè)截屏工具的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10