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


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 相关文章推荐
jquery()函数的三种语法介绍
Oct 09 Javascript
javascript 寻找错误方法整理
Jun 15 Javascript
使用jQuery实现更改默认alert框体
Apr 13 Javascript
浅谈JS原生Ajax,GET和POST
Jun 08 Javascript
Bootstrap CSS组件之大屏幕展播
Dec 17 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
Sep 20 jQuery
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
Jun 14 Javascript
Vue Router去掉url中默认的锚点#
Aug 01 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
Jan 19 Javascript
详解微信小程序调用支付接口支付
Apr 28 Javascript
element多个表单校验的实现
May 27 Javascript
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
基于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 水平的题目
2007/05/30 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
2011/11/10 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
24条货真价实的PHP代码优化技巧
2016/07/28 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
几个有趣的Javascript Hack
2010/07/24 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
js数组去重的方法汇总
2015/07/29 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
JS中正则表达式只有3种匹配模式(没有单行模式)详解
2016/07/28 Javascript
Node.js中process模块常用的属性和方法
2016/12/13 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
详解从买域名到使用pm2部署node.js项目全过程
2018/03/07 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
Python实现获取操作系统版本信息方法
2015/04/08 Python
Django密码系统实现过程详解
2019/07/19 Python
python Pillow图像处理方法汇总
2019/10/16 Python
Python高级property属性用法实例分析
2019/11/19 Python
使用Python实现牛顿法求极值
2020/02/10 Python
如何把外网python虚拟环境迁移到内网
2020/05/18 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
Agoda.com官方网站:便宜预订全球酒店,高达80%的折扣
2018/04/04 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
中秋节随笔
2015/08/15 职场文书
幼儿园小班开学寄语(2016秋季)
2015/12/03 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server
Oracle中DBLink的详细介绍
2022/04/29 Oracle
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers