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


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 相关文章推荐
利用ASP发送和接收XML数据的处理方法与代码
Nov 13 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
Aug 18 Javascript
理解javascript中的回调函数(callback)
Sep 02 Javascript
js获取url传值的方法
Dec 18 Javascript
基于jQuery1.9版本如何判断浏览器版本类型
Jan 12 Javascript
前端弹出对话框 js实现ajax交互
Sep 09 Javascript
jquery实现轮播图效果
Feb 13 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
再谈Angular4 脏值检测(性能优化)
Apr 23 Javascript
javascript移动端 电子书 翻页效果实现代码
Sep 07 Javascript
微信分享invalid signature签名错误踩过的坑
Apr 11 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
PHP中的函数嵌套层数限制分析
2011/06/13 PHP
过滤掉PHP数组中的重复值的实现代码
2011/07/17 PHP
php中XMLHttpRequest(Ajax)不能设置自定义的Referer的解决方法
2011/11/26 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
PHP限制HTML内容中图片必须是本站的方法
2015/06/16 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
微信小程序 css使用技巧总结
2017/01/09 Javascript
JQuery 选择器、DOM节点操作练习实例
2017/09/28 jQuery
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
react实现移动端下拉菜单的示例代码
2020/01/16 Javascript
vue实现树状表格效果
2020/12/29 Vue.js
python简单的函数定义和用法实例
2015/05/07 Python
Python获取当前公网ip并自动断开宽带连接实例代码
2018/01/12 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
用Python写一段用户登录的程序代码
2018/04/22 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
利用python画出折线图
2018/07/26 Python
python中eval与int的区别浅析
2019/08/11 Python
python配置文件写入过程详解
2019/10/19 Python
python的链表基础知识点
2020/09/13 Python
美国在线鞋类零售商:LifeStride
2019/06/09 全球购物
党校培训自我鉴定
2014/02/01 职场文书
护士个人总结范文
2015/02/13 职场文书
护理专业自荐信范文
2015/03/06 职场文书
立春观后感
2015/06/18 职场文书
幼儿园中班班级总结
2015/08/10 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
Html5同时支持多端sdk的小技巧
2021/11/17 HTML / CSS
利用Java连接Hadoop进行编程
2022/06/28 Java/Android