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


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 页面传参数时 参数值含特殊字符的问题
Dec 13 Javascript
JavaScript类和继承 constructor属性
Mar 04 Javascript
javascript 浏览器检测代码精简版
Mar 04 Javascript
jquery ajax post提交数据乱码
Nov 05 Javascript
js定时调用方法成功后并停止调用示例
Apr 08 Javascript
jQuery实现带动画效果的二级下拉导航方法
Mar 11 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
Mar 11 Javascript
详解Javacript和AngularJS中的Promises
Feb 09 Javascript
基于Javascript实现返回顶部按钮
Feb 29 Javascript
Element输入框带历史查询记录的实现示例
Jan 15 Javascript
微信小程序 冒泡事件原理解析
Sep 27 Javascript
Vue分页效果与购物车功能
Dec 13 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
一个ORACLE分页程序,挺实用的.
2006/10/09 PHP
需要发散思维学习PHP
2009/06/29 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
js实现常用排序算法
2016/08/09 Javascript
javascript+html5+css3自定义提示窗口
2017/06/21 Javascript
vue组件的写法汇总
2018/04/12 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
Python wxpython模块响应鼠标拖动事件操作示例
2018/08/23 Python
通过PHP与Python代码对比的语法差异详解
2019/07/10 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
Python实现在Windows平台修改文件属性
2020/03/05 Python
python如何查看网页代码
2020/06/07 Python
让IE下支持Html5的placeholder属性的插件
2014/09/02 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
党章学习思想汇报
2014/01/14 职场文书
工业设计毕业生自荐信
2014/04/13 职场文书
小学师德师风整改措施
2014/10/27 职场文书
病危通知书样本
2015/04/17 职场文书
实习证明格式范文
2015/06/16 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书
初中政治教学反思
2016/02/23 职场文书