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


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的仿flash的广告轮播代码
Nov 04 Javascript
JQuery EasyUI 数字格式化处理示例
May 05 Javascript
windows8.1+iis8.5下安装node.js开发环境
Dec 12 Javascript
浅析javascript中的事件代理
Nov 06 Javascript
原生JS实现平滑回到顶部组件
Mar 16 Javascript
关于网页中的无缝滚动的js代码
Jun 09 Javascript
bootstrap监听滚动实现头部跟随滚动
Nov 08 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
Dec 08 Javascript
微信小程序实现图片上传功能实例(前端+PHP后端)
Jan 10 Javascript
jQuery使用bind动态绑定事件无效的处理方法
Dec 11 jQuery
vue实现鼠标移过出现下拉二级菜单功能
Dec 12 Javascript
angular *Ngif else用法详解
Dec 15 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+Html+缓存
2006/11/25 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
csdn 批量接受好友邀请
2009/02/19 Javascript
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
css样式标签和js语法属性区别
2013/11/06 Javascript
JQuery动态添加和删除表格行的方法
2015/03/09 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
全面解析Bootstrap排版使用方法(标题)
2015/11/30 Javascript
关于Bootstrap弹出框无法调用问题的解决办法
2016/03/10 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
详解webpack异步加载业务模块
2017/06/23 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
2020/07/15 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
TensorFlow实现RNN循环神经网络
2018/02/28 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
python GUI库图形界面开发之PyQt5不规则窗口实现与显示GIF动画的详细方法与实例
2020/03/09 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
小班幼儿评语大全
2014/04/30 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
小学音乐课教学反思
2016/02/18 职场文书
Redis IP地址的绑定的实现
2021/05/08 Redis
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server
Python测试框架pytest高阶用法全面详解
2022/06/01 Python