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


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动画制作滑动菜单项效果实现步骤及代码
Feb 07 Javascript
js 本地预览的简单实现方法
Feb 18 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
Jun 09 Javascript
JS中完美兼容各大浏览器的scrolltop方法
Apr 17 Javascript
javascript实现给定半径求出圆的面积
Jun 26 Javascript
js仿支付宝填写支付密码效果实现多方框输入密码
Mar 09 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
May 26 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
Sep 30 Javascript
基于Vue2.X的路由和钩子函数详解
Feb 09 Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 Javascript
彻底揭秘keep-alive原理(小结)
May 05 Javascript
vue实现拖拽交换位置
Apr 07 Vue.js
详解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
2006/12/13 PHP
php中文字符截取防乱码
2008/03/28 PHP
php实现字符串翻转的方法
2015/03/27 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
2015/08/31 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
PHP工厂模式、单例模式与注册树模式实例详解
2019/06/03 PHP
php post换行的方法
2020/02/03 PHP
JS实现在Repeater控件中创建可隐藏区域的代码
2010/09/16 Javascript
javaScript arguments 对象使用介绍
2013/10/18 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
基于jquery实现发送文章到手机的代码
2014/12/26 Javascript
Three.js学习之网格
2016/08/10 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
bootstrap datetimepicker日期插件使用方法
2017/01/13 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
vue 动态修改a标签的样式的方法
2018/01/18 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
Vue.js中的组件系统
2019/05/30 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python实现带百分比的进度条
2016/06/28 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
2020/04/07 Python
python更新数据库中某个字段的数据(方法详解)
2020/11/18 Python
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
幼儿园课题实施方案
2014/05/14 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
普通党员对照检查材料
2014/09/24 职场文书
担保书范文
2015/01/20 职场文书
中班下学期个人总结
2015/02/12 职场文书
PyCharm 安装与使用配置教程(windows,mac通用)
2021/05/12 Python