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


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 相关文章推荐
js身份证判断方法支持15位和18位
Mar 18 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
May 22 Javascript
javascript实现汉字转拼音代码分享
Apr 20 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
用jquery快速解决IE输入框不能输入的问题
Oct 04 Javascript
Mac系统下Webstorm快捷键整理大全
May 28 Javascript
默认浏览器设置及vue自动打开页面的方法
Sep 21 Javascript
mpvue全局引入sass文件的方法步骤
Mar 06 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
May 08 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
Feb 01 Javascript
JS严格模式原理与用法实例分析
Apr 27 Javascript
jQuery实现简单弹幕制作
Dec 10 jQuery
详解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
桌面中心(四)数据显示
2006/10/09 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
使用PHP实现阻止用户上传成人照片或者裸照
2014/12/25 PHP
PHP获取网页所有连接的方法(附demo源码下载)
2016/03/30 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
php实现微信公众号企业转账功能
2018/10/01 PHP
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
JS开发中百度地图+城市联动实现实时触发查询地址功能
2017/04/13 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
[02:07]2018DOTA2亚洲邀请赛主赛事第三日五佳镜头 fy极限反杀
2018/04/06 DOTA
Python中不同进制的语法及转换方法分析
2016/07/27 Python
python3 发送任意文件邮件的实例
2018/01/23 Python
Python对数据进行插值和下采样的方法
2018/07/03 Python
Python字符串逆序的实现方法【一题多解】
2019/02/18 Python
python实现多线程端口扫描
2019/08/31 Python
Python字符串大小写转换拼接删除空白
2019/09/19 Python
Numpy之将矩阵拉成向量的实例
2019/11/30 Python
Pycharm配置lua编译环境过程图解
2020/11/28 Python
使用phonegap进行本地存储的实现方法
2017/03/31 HTML / CSS
美国汽车轮胎和轮毂销售网站:Tire Rack
2018/01/11 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
波兰运动鞋网上商店:Distance.pl
2020/07/30 全球购物
Linux常见面试题
2013/03/18 面试题
《猫》教学反思
2014/02/26 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
Python基础详解之描述符
2021/04/28 Python
详解如何使用Nginx解决跨域问题
2022/05/06 Servers