当前位置: 首页 > news >正文

微信小程序如何利用createIntersectionObserver实现图片懒加载

微信小程序如何利用createIntersectionObserver实现图片懒加载

  • 节点布局相交状态 API
    可用于监听两个或多个组件节点在布局位置上的相交状态。这一组API常常可以用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见。

  • 节点布局相交状态 API中有一个 wx.createIntersectionObserver(Object this, Objectoptions)
    Api (支持版本 >= 1.9.3),它的作用是创建并返回一个 IntersectionObserver
    对象实例(交叉区域),这个对象实例在小程序的解说如下:

  • IntersectionObserver 对象,用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见,它有:relativeTo、relativeToViewport、observe、disconnect等方法

  • 由此我们可以设置图片进入可见界面某一区域时的监听回调事件,以此实现图片的懒加载

 Page({data: {group: [{src: "https://csdnimg.cn/feed/20180914/c67d9521db939fc8beb9a27b046ef1a3.jpg",show: false,def: "https://img.alicdn.com/tps/i3/T1QYOyXqRaXXaY1rfd-32-32.gif"},...... // 更多图片信息]},onLoad: function () {let group = this.data.group  // 获取原数据for (let i in group) {// 设置监听回调事件,当元素 .loadImg{{i}},进入页面20px内就触发回调事件,设置图片为真正的图片,通过show控制wx.createIntersectionObserver().relativeToViewport({ bottom: 20 }).observe('.loadImg' + i, (ret) => {if (ret.intersectionRatio > 0) {group[i].show = true}this.setData({ // 更新数据group})})}}})
<block wx:for="{{group}}" wx:key="1"><view class="loadImg loadImg{{index}} {{item.show? 'active' : ''}}" ><!-- 通过条件判断确认图片的src --><image wx:if='{{item.show}}' style='width:100%;height:100%;' src='{{item.src}}'></image><image wx:else style='width:20%;height:20%;margin:0 auto;margin-top:50%;transform:translateY(-50%);' src='{{item.def}}' mode='aspectFit'></image></view></block>
.loadImg{width:100vw;height:46.3vw;transition: all .2s ease-in-out;opacity: 0;}.loadImg.active{opacity: 1}

到这里也就结束了,希望对您有所帮助。

http://www.lryc.cn/news/263899.html

相关文章:

  • 七:爬虫-数据解析之正则表达式
  • 云原生之深入解析亿级流量架构之服务限流思路与方法
  • 【Python炫酷系列】祝考研的友友们金榜题名吖(完整代码)
  • KL散度、CrossEntropy详解
  • 【算法】红黑树
  • 2023楚慧杯 WEB方向 部分:(
  • STM32 CAN多节点组网项目实操 挖坑与填坑记录2
  • Flink 数据类型 TypeInformation信息
  • 基于python的leetcode算法介绍之递归
  • 2023年度佳作:AIGC、AGI、GhatGPT、人工智能大语言模型的崛起与挑战
  • Axure的交互以及情形的介绍
  • 【MATLAB第84期】基于MATLAB的波形叠加极限学习机SW-ELM代理模型的sobol全局敏感性分析法应用
  • 米游社区表情包整合网站源码
  • easyexcel调用公共导出方法导出数据
  • C语言插入排序算法及代码
  • 2023年中国法拍房用户画像和数据分析
  • Android 清除临时文件,清空缓存
  • Guava限流神器:RateLimiter使用指南
  • 【六大排序详解】开篇 :插入排序 与 希尔排序
  • 凸优化问题求解
  • 文件操作入门指南
  • Axure之交互与情节与一些实例
  • 【数据库设计和SQL基础语法】--连接与联接--多表查询与子查询基础(二)
  • Android studio中导入opencv库
  • Linux(1)_基础知识
  • 网络相关面试题
  • Vue2面试题:说一下对跨域的理解?
  • Axure中如何使用交互样式交互事件交互动作情形
  • 1112. 迷宫(DFS之连通性模型)
  • 飞天使-k8s知识点1-kubernetes架构简述