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


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的投票系统显示结果插件
Aug 12 Javascript
jQuery Tools Dateinput使用介绍
Jul 14 Javascript
jquery获取元素索引值index()示例
Feb 13 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
May 09 Javascript
JS中递归函数
Jun 17 Javascript
微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解
Jan 17 Javascript
javascript获取以及设置光标位置
Feb 16 Javascript
Vue from-validate 表单验证的示例代码
Sep 26 Javascript
详解vue项目中如何引入全局sass/less变量、function、mixin
Jun 02 Javascript
解决vue.js 数据渲染成功仍报错的问题
Aug 25 Javascript
JS执行控制之节流模式实例分析
Dec 21 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
Jul 09 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分页示例代码
2007/03/19 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
用jscript启动sqlserver
2007/06/21 Javascript
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
不使用中间变量,交换int型的 a, b两个变量的值。
2010/10/29 Javascript
Node.js开源应用框架HapiJS介绍
2015/01/14 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
微信小程序 底部导航栏目开发资料
2016/12/05 Javascript
Bootstrap进度条与AJAX后端数据传递结合使用实例详解
2017/04/23 Javascript
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
2018/04/17 jQuery
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
jQuery实现DIV响应鼠标滑过由下向上展开效果示例【测试可用】
2018/04/26 jQuery
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
Python创建xml文件示例
2017/03/22 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
python pandas dataframe 按列或者按行合并的方法
2018/04/12 Python
python实现抖音视频批量下载
2018/06/20 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
Michael Kors香港官网:美国奢侈品品牌
2019/12/26 全球购物
意大利辅助药品、药物和补品在线销售:FarmaEurope
2020/04/29 全球购物
电焊工岗位职责
2014/03/06 职场文书
珍惜水资源建议书
2014/03/12 职场文书
财务人员入职担保书
2015/09/22 职场文书
生日寿星公答谢词
2015/09/29 职场文书
Java基础之线程锁相关知识总结
2021/06/30 Java/Android
python 标准库原理与用法详解之os.path篇
2021/10/24 Python
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技
TV动画《八十龟酱观察日记》第四季宣传PV公布
2022/04/06 日漫