1.基本理解
骨架屏實現原理很簡單,就是通過佔位線框元素,漸進式載入資料。
骨架屏是結合了懶載入功能,在頁面沒有載入完成之前,先呈現頁面基本結構。
效果圖
注意點:
1, 引入組建後, template 標籤內加入
2,data
物件中設定showskeleton: true
// 預設一開始進入頁面載入骨架屏內容。
3, 渲染資料。
datalist: [,]
如果要應用小程式,把uni替換成wx即可
skeleton.vue
<index.vue 頁面template
>
<
div>
<
div
class
="wrap"
:style
="">
<
div
v-for
="(item,index) in skeletonrectlists"
:index
='index'
:key
='index'
class
="chiaroscuro"
:style
="">
div>
<
div
v-for
="(item,index) in skeletoncirclelists"
:index
='index'
:key
="'info2-'+index"
class
="chiaroscuro"
:style
="">
div>
div>
div>
template
>
<
script
>
/*eslint-disable
*/export
default
, selector: ,
},data() ,
skeletonrectlists: ,
skeletoncirclelists: ,
};},
components: {},
methods:
-rect`)
.boundingclientrect()
.exec(
function
(res) );
},radiushandle:
function
() -
radius`)
.boundingclientrect()
.exec(
function
(res) );
},},
mounted:
function
() );
const that
=this
;
//繪製背景
uni .createselectorquery()
.selectall(`.$`)
.boundingclientrect()
.exec(
function
(res) );
//繪製矩形
this
.recthandle();
//繪製圓形
this
.radiushandle();
},};/*
eslint-enable
*/script
>
<
style
scoped
>
.wrap
.chiaroscuro
@keyframes placeholdershimmer
100%
}style
>
<template
>
<
view
class
="content "
>
<
skeleton
selector
="skeleton"
bgcolor
="#fff"
v-if
="showskeleton"
>
skeleton
>
<
view
class
="skeleton"
>
<
image
class
="logo skeleton-rect"
src="/static/logo.png"
>
image
>
<
view
class
="text-area skeleton-radius"
>
<
text
class
="title"
>}
text
>
view
>
view
>
view
>
template
>
<
script
>
import skeleton from
'../index/skeleton
'export
default
},components:,
created() ,
methods: ,
2000
) },}}
script
>
uniapp實現骨架屏
前言 使用者在等待資料渲染的時候,有可能因為網路速度慢,手機硬體等問題,造成等待時間延長,使得使用者體驗不好。之前的做法是放個載入中的圖示,而現在是直接根據頁面原有元素繪製圖形的方式,讓使用者有種頁面就快渲染好的錯覺。載入過程效果圖 如圖,從圖一到圖二,最底部多出了乙個動態載入的骨架,模擬同一頁面多...
uni app 小程式生成海報
有需要的可以封裝成元件使用。context.beginpath 設定線寬 context.linewidth 4 設定間距 引數為無限陣列,虛線的樣式會隨陣列迴圈 context.setlinedash 8,8 移動畫筆至座標 x20 y20 的位置 context.moveto 20,20 繪製到...
uni app微信小程式登入授權
首先是需要用到乙個授權按鈕來觸發獲取使用者資訊授權 關鍵在於 open type 為 getuserinfo 然後有個 getuserinfo的事件,把獲取授權介面寫到該事件裡面去 方法如下 ifdef mp weixin uni.getprovider fail fail else endif 在...