微信小程序实现图片懒加载的示例代码


Posted in Javascript onDecember 13, 2017

本文主要介绍微信小程序的模拟图片懒加载,实现的原理是通过页面预加载图片(默认图),加载完成后再显示出来原图,而非真正意义上的懒加载(跟web的懒加载还有很大的差距),只是借此提高用户体验度。

多图片懒加载

1.xml页面

<block wx:for="{{list}}" wx:key="">
  <image class='relative width-100 mgb-20 fade_in' src='{{item.cover_url}}' mode='widthFix' style='display:none' bindload="_imgOnLoad" id='{{item.cover_url}}'></image>
   <view class='tag-bg {{item.checked?"tag-bg1":""}}'></view>
   <view class='tag-text fz-30 fwb'>{{item.type_name}}</view>
   <image class='relative width-100 mgb-20 fade_in {{item.loaded?"":"loading-img"}}' src='{{item.loaded?item.cover_url:item.url}}' mode='widthFix'></image>
 </block>

2.js页面

//ajax请求数据
onLoad: function () {
  var that = this
  var page = that.data.page
  wx.request({
   url: request_url,
   data: {
    'signature': signature,
    'page':1,
    'pageSize': 2
   },
   success: function (res) {
    let list = res.data.content
    for (var i = 0; i < list.length; i++) {
     list[i].url = "../../img/771.gif" //用json的格式创建url,作为加载过度图片
    }
    that.setData({
     list: list,
    })
   }
  })
 },

//监听图片加载页面
 _imgOnLoad: function (e) {
  // console.log(e)
  var loadedUrl = e.target.id
  let that = this
  let list = that.data.list
  for (var i = 0; i < list.length; i++) {
   if (list[i].cover_url == loadedUrl) {
    list[i].loaded = true
   }
   that.setData({
    list
   })
  }
 }

tips:上述数据加载的代码为get的方式,需要数据加密的则选择post的方式,有需要的可以留言。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery 绑定时间实现代码
May 03 Javascript
20款效果非常棒的 jQuery 插件小结分享
Nov 18 Javascript
浅析Node.js的Stream模块中的Readable对象
Jul 29 Javascript
JS获取地址栏参数的两种方法(简单实用)
Jun 14 Javascript
JS获取url参数、主域名的方法实例分析
Aug 03 Javascript
浅析Node.js实现HTTP文件下载
Aug 05 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
vuejs响应用户事件(如点击事件)
Mar 14 Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 Javascript
基于layui框架响应式布局的一些使用详解
Sep 16 Javascript
详解node登录接口之密码错误限制次数(含代码)
Oct 25 Javascript
JS script脚本中async和defer区别详解
Jun 24 Javascript
详解vue-cli 接口代理配置
Dec 13 #Javascript
vue项目总结之文件夹结构配置详解
Dec 13 #Javascript
vue.js简单配置axios的方法详解
Dec 13 #Javascript
关于Vue单页面骨架屏实践记录
Dec 13 #Javascript
JS实现利用两个队列表示一个栈的方法
Dec 13 #Javascript
node vue项目开发之前后端分离实战记录
Dec 13 #Javascript
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 #Javascript
You might like
DC动画电影《黑暗正义联盟》曝预告 5月5日上线数字平台
2020/04/09 欧美动漫
摩卡咖啡
2021/03/03 咖啡文化
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
分享下页面关键字抓取www.icbase.com站点代码(带asp.net参数的)
2014/01/30 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
phpwind放自动注册方法
2006/12/02 Javascript
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
javascript针对DOM的应用实例(一)
2012/04/15 Javascript
javascript的数据类型、字面量、变量介绍
2012/05/23 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
javascript:json数据的页面绑定示例代码
2014/01/26 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
js隐式转换的知识实例讲解
2018/09/28 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
js实现简易计算器功能
2019/10/18 Javascript
如何构建 vue-ssr 项目的方法步骤
2020/08/04 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
[05:31]DOTA2英雄梦之声_第04期_光之守卫
2014/06/23 DOTA
python解析文件示例
2014/01/23 Python
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Python中的两个内置模块介绍
2015/04/05 Python
Python数据结构之翻转链表
2017/02/25 Python
python实现俄罗斯方块游戏
2020/03/25 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
使用tensorflow实现矩阵分解方式
2020/02/07 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
高校毕业生登记表自我鉴定
2013/11/03 职场文书
交通法规咨询中心工作职责
2013/11/27 职场文书
C++程序员求职信
2014/05/07 职场文书
优秀毕业生求职信
2014/06/05 职场文书
党纪处分决定书
2015/06/24 职场文书
Python  序列化反序列化和异常处理的问题小结
2022/12/24 Python