如何在微信小程序中使用骨架屏的步骤


Posted in Javascript onJune 12, 2020

本文介绍了微信小程序中使用骨架屏,分享给大家,具体如下:

先上效果图

如何在微信小程序中使用骨架屏的步骤

骨架屏主要起到占位作用,向用户说明该区域有内容,有一定的心理准备。

聊聊背景:刚上线一款小程序,随着上架的东西越来越多,微信小程序加载越来越慢,会出现一段时间的白屏(大概2-3s),这对用户体验上来讲特别不友好。所以在网上开始找这方面的资料,骨架屏主要分为两种方案,下面来说说这两种方案。

1、为每个需要使用骨架屏的页面定制一套静态页面。这种方法缺点很明显,需要为每个页面单独定制,布局如果修改则需要同时修改两个页面,增加了维护成本。但这种特别适用于长列表,只需要做用户可见的部分,可在一定程度上增加响应速度。

2、利用工具渲染页面 获取指定的DOM节点和对应样式,生成灰色块覆盖在原来的样式结构上,从而实现骨架屏。这种方式简单易用好维护,个人感觉不太适合在长列表页面。https://github.com/jayZOU/skeleton 这款骨架屏组件轻量、方便、快捷,里面有教程,强烈推荐。

使用哪一种方案,就要根据自己的项目情况来进行选择了。我采用的是第一种,因为这个页面加载的DOM节点太多了。从获取到数据后到渲染到页面这段时间有骨架屏做缓冲,效果倍棒。

实现方法:

1、根据原有页面的结构,在重写一个静态页面,把原来用来显示图片、文字的地方替换成有灰色背景色的块。

<!--骨架屏 -->

<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>

  这里是原来的页面

</view >

2、使用一个变量来控制骨架屏的显示或隐藏。

onLoad: function(options) {

  var that = this

  wx.request({

    url:'xxxx', //请求地址

    data: { //发送给后台的数据

      xxxx: xxxx

    },

    header: { //请求头

    "Content-Type": "applciation/json"

    },

    method: "GET",

    success: function(res) {

      that.setData({

        goodslist: data

      })

      that.setData({

        // 数据渲染后

        showSkeleton: false

      })

    },

    fail: function(err) {    

    }

  })
}

总结一下:数据较多的页面使用骨架屏可以大大提高用户体验。上文提到的骨架屏组件也是非常好用,几分钟就可以上手使用。

初次接触骨架屏,有理解不到的地方还请多多指正。

到此这篇关于如何在微信小程序中使用骨架屏的步骤的文章就介绍到这了,更多相关小程序使用骨架屏内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js和as的稳定传值问题解决
Jul 14 Javascript
分享一款基于jQuery的视频播放插件
Oct 09 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
May 13 Javascript
JavaScript中计算网页中某个元素的位置
Jun 10 Javascript
JavaScript包装对象使用详解
Jul 09 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
Aug 27 Javascript
动态加载js文件简单示例
Apr 21 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
Nov 24 Javascript
javascript 取小数点后几位几种方法总结
Aug 02 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
Aug 08 jQuery
原生JS实现手动轮播图效果实例代码
Nov 22 Javascript
微信小程序实现身份证取景框拍摄
Sep 09 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 #Javascript
js实现mp3录音通过websocket实时传送+简易波形图效果
Jun 12 #Javascript
学前端,css与javascript重难点浅析
Jun 11 #Javascript
微信小程序 scroll-view的使用案例代码详解
Jun 11 #Javascript
基于ajax及jQuery实现局部刷新过程解析
Sep 12 #jQuery
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
Jun 11 #Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
Jun 11 #Javascript
You might like
基于php冒泡排序算法的深入理解
2013/06/09 PHP
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
ThinkPHP分页实例
2014/10/15 PHP
thinkPHP线上自动加载异常与修复方法实例分析
2016/12/01 PHP
利用PHP判断是否是连乘数字串的方法示例
2017/07/03 PHP
PHP创建XML接口示例
2019/07/04 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
让IE6支持min-width和max-width的方法
2010/06/25 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
jquery使用经验小结
2015/05/20 Javascript
javascript生成不重复的随机数
2015/07/17 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
详解webpack分离css单独打包
2017/06/21 Javascript
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
js实现简单点赞操作
2020/03/17 Javascript
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
HTML5中使用postMessage实现两个网页间传递数据
2016/06/22 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
高中数学教师求职信
2013/10/30 职场文书
20岁生日感言
2014/01/13 职场文书
给孩子的新年寄语
2014/04/08 职场文书
应用外语系自荐信
2014/06/26 职场文书
党校学习心得体会范文
2014/09/09 职场文书
办理房产证委托书
2014/09/18 职场文书
办公用房租赁协议书
2014/11/29 职场文书
先进个人自荐书
2015/03/06 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
七年级作文之秋游
2019/10/21 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
java代码实现空间切割
2022/01/18 Java/Android