微信小程序实现图片懒加载的懒办法(思路参考)
来源:互联网 发布:淘宝海景房图片怎么做 编辑:程序博客网 时间:2024/06/01 08:42
微信小程序中,由于没有办法实现DEMO操作,位置的操作在小程序中很难进行,所以要实现图片的懒加载是真的难啊(简直操碎了心~~)!!!
懒加载的实现无非就那几个办法,说白了就是按需加载、监听滚动条加载、延时加载。。。
说明:此方法只适用于有明确统一高度的图片排列!
不说那么多了,直接上方法了
首先,我们在本地先放上一张图片(index.png),然后我们再来看张图片~~嘤嘤嘤
图中每个模块的高度应该是Demo的高度=图片的高度+文字描述内容节点高度+maigin-bottom
知道高度的计算之后就好办了
微信小程序Page中的onPageScroll方法直接提供了监听页面滑动距离的方法(这就很舒服)
page({ data:{ damoHeight: '100',//demo高度 }, onPageScroll: function (res) { console.log(res.scrollTop); }})
由此得到页面的滚动距离。不过这个方法在WEB开发工具中不是很好用,在用鼠标滚轮滚动的过程中,这个方法的触发感觉不是很灵敏,不晓得是不是个别原因。还有,就是如果在这个方法中写一些精密的判断话,尽量少写一点,毕竟页面滑动的时候,会一直触发这个方法,难保不会出错。
知道了demo的高度,页面的滚动距离之后,剩下的就是数据的渲染了
把后台返回的图片地址赋值到一个全局数组变量中,并且同时创建一个长度和此数组一样的数组,里面全放上false,备用
page({ data:{ damoHeight: '100',//demo高度 imgUrls: [//图片地址 { url: 'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg' }, { url: 'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg' } ], arry:[false,false], }, onPageScroll: function (res) { console.log(res.scrollTop); }})
wxml中这样写
<image src="{{arry[index] ? imgUrls[index].url: 'index.png'}}"></image>
用本地的图片形成一个占位符效果,然后由arry中对应下标的false和true来控制image 标签的路径是本地的还是imgUrls中的,然后在onPageScroll中,用屏幕滑动的距离/Demo的高度,在取整,得到的整数就是arry中需要变成true的下标
page({ data:{ damoHeight: '100',//demo高度 imgUrls: [//图片地址 { url: 'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg' }, { url: 'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg' } ], arry:[false,false], }, onPageScroll: function (res) { var _this = this; //console.log(res.scrollTop); var str = parseInt(res.scrollTop / _this.data.damoHeight); _this.data.arry[str] = true; _this.setData({ arry:_this.data.arry }) }})
搞定,其实也不是什么很复杂的东西,这就是一种另类一点的实现方式罢了,当然里面的一些高度的判断,屏幕的滚动距离还是需要自己去计算滴。。。至于照片的显示动画就自己加上去就好,我的话就这样写
image{ opacity: 0; width: 100%; height: 70%; transition: opacity 1s linear 2s;}.Action{ opacity: 1;}
简单的淡入淡出,好了,打完收工,不扯淡了,继续填坑去。。。
- 微信小程序实现图片懒加载的懒办法(思路参考)
- 微信小程序--图片懒加载
- ViewPager的懒加载思路
- 一位网友实现的image异步加载类,支持memory和disk缓存,思路供参考
- 微信小程序图片的加载
- 微信小程序图片的加载
- 图片预加载与图片懒加载(缓载)的区别与实现
- python实现懒加载图片的下载
- jq实现图片的懒加载
- ionic+requirejs实现图片的懒加载
- 用jquery实现图片的懒加载
- 图片懒加载的几种实现
- js实现图片的懒加载
- 【Android】异步加载图片-------不错的思路
- js 图片切换 思路参考
- 滚动加载图片(懒加载)实现原理
- 滚动加载图片(懒加载)实现原理
- 滚动加载图片(懒加载)实现原理
- 正则表达式匹配(字符串)
- MVC、MVP的区别和MVVM设计模式及实例
- Android给RecyclerView添加头(Header)和尾(Footer)和分标题(Title)——最简单的两种方法
- CCF 201612-2 工资计算
- todomvp的简化版本
- 微信小程序实现图片懒加载的懒办法(思路参考)
- nginx使用stream反向代理mysql
- 【笔记】Java代码调用exe
- vue-cli构建项目
- ios借贷类马甲包
- 第3章 Unity Shader 基础
- 数字类型
- 个人失败的网站运营经历,三年一分钱没赚到
- 11月总结