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


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 相关文章推荐
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 Javascript
Jquery中获取iframe的代码
Jan 11 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
Jul 10 Javascript
Tab切换组件(选项卡功能)实例代码
Nov 21 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
easyui datebox 时间限制,datebox开始时间限制结束时间,datebox截止日期比起始日期大的实现代码
Jan 12 Javascript
JavaScript设计模式之模板方法模式原理与用法示例
Aug 07 Javascript
解决vue移动端适配问题
Dec 12 Javascript
vue实现图片按比例缩放问题操作
Aug 11 Javascript
javascript实现智能手环时间显示
Sep 18 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
常用表单验证类,有了这个,一般的验证就都齐了。
2006/12/06 PHP
php expects parameter 1 to be resource, array given 错误
2011/03/23 PHP
php获取文件名称和扩展名的方法
2017/02/07 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
javascript中String类的subString()方法和slice()方法
2011/05/24 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
JQuery操作三大控件(下拉,单选,复选)的方法
2013/08/06 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
nodejs爬虫抓取数据之编码问题
2015/07/03 NodeJs
javascript中setTimeout使用指南
2015/07/26 Javascript
Vue.js 中的 $watch使用方法
2017/05/25 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
基于React Native 0.52实现轮播图效果
2020/08/25 Javascript
小程序组件之自定义顶部导航实例
2019/06/12 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
python写的一个squid访问日志分析的小程序
2014/09/17 Python
详解Python中的四种队列
2018/05/21 Python
Sanic框架配置操作分析
2018/07/17 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
广播电视新闻学专业应届生求职信
2013/10/08 职场文书
学生周末长期请假条
2014/02/15 职场文书
超市中秋节促销方案
2014/03/21 职场文书
老干部工作先进集体事迹材料
2014/05/21 职场文书
财会专业大学生求职信
2014/09/26 职场文书
群众路线查摆问题整改措施思想汇报
2014/10/10 职场文书
党员群众路线个人整改措施思想汇报
2014/10/12 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
CSS几步实现赛博朋克2077风格视觉效果
2021/06/16 HTML / CSS