5分钟掌握微信小程序 IntersectionObserver

本文介绍了微信小程序中IntersectionObserver的使用,包括创建、设置参考区域、监听和取消监听的详细步骤,并提供了一个简单的示例来展示如何监测目标对象与参照物的相交情况。文章还强调了动态加载列表时的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5 分钟掌握微信小程序 IntersectionObserver

简介

IntersectionObserver 对象,用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见,用通俗的语言来说就是用于监测目标对象与某个参照物的相交情况。

API

IntersectionObserver 微信官方文档

创建

(1)wx.createIntersectionObserver(Object component, Object options)

(2)在组件内部使用 this.createIntersectionObserver([options])

Object component 一般为 this,也可为 null

options 为对象,可填写的属性有三个:

  • thresholds :数值数组,代表相交比例的阈值(可有多个,取值范围 [0,1] ),当相交到达该阈值时会触发一次监听回调,默认为[0];
  • initialRatio :初始相交比例,如果方法调用时检测到的相交比例与这个值不相等且达到阈值,则会触发一次监听器的回调函数,默认为 0;
  • observeAll :是否同时观测多个目标节点,默认为 fasle;

设置参考区域

(1) IntersectionObserver.relativeToViewport() 指定页面显示区域作为参照区域之一

(2) IntersectionObserver.relativeTo(string selector, Object margins) 使用选择器指定一个节点,作为参照区域之一。

selector 类似于 CSS 的选择器,但仅支持下列语法。

  • ID 选择器:#the-id
  • class 选择器(可以连续指定多个):.a-class.another-class
  • 子元素选择器:.the-parent > .the-child
  • 后代选择器:.the-ancestor .the-descendant
  • 跨自定义组件的后代选择器:.the-ancestor >>> .the-descendant
  • 多选择器的并集:#a-node, .some-other-nodes

margins 用来扩展(或收缩)参照节点布局区域的边界

  • left 节点布局区域的左边界
  • right 节点布局区域的右边界
  • top 节点布局区域的上边界
  • bottom 节点布局区域的下边界

监听

IntersectionObserver.observe(string targetSelector, function callback)

selector 代表目标模块的选择器,当它和参考区域相交达到阈值比例时,会触发 callback 回调函数,回调函数返回如下几个参数:

  • intersectionRatio : 两者相交比例;
  • time :相交检测时的时间戳;
  • intersectionRect :相交区域的边界;
  • boundingClientRect :目标边界;
  • relativeRect :参照区域的边界;

取消监听

IntersectionObserver.disconnect() 停止监听。回调函数将不再触发

简单示例

微信官方 API 示例 打开小程序开发者工具后点击连接即可引入

代码

<view class="container">
  <view class="page-body">
    <view class
回答: 当在VSCode中运行程序时,出现小黑框闪退的情况,可以尝试以下两种方法解决。方法一是在launch.json文件中加入"externalConsole": true,这样程序将在外部控制台中运行。方法二是将launch.json文件中的console字段改为"externalTerminal",即"console": "externalTerminal"。这样程序将在外部终端中运行。\[1\] 此外,如果使用的是Windows系统且遇到中文格式问题,可以安装插件来解决。一种方法是安装Code Runner插件,并在设置中勾选"Run Code in Integrated Terminal"选项。另一种方法是安装Compile Run插件,并使用快捷键(一般是F8)来运行程序。这两种插件都可以解决小黑框闪退的问题。\[2\] 如果以上方法仍然无法解决问题,可以参考网上的教程或在搜索引擎中搜索相关问题,以获得更多解决方案。同时,提醒不要提出不经思考的问题,可以通过自学来提高解决问题的能力。如果仍然无法解决,可以私信我或在评论区留言,我会尽力帮助你。 #### 引用[.reference_title] - *1* [vscode:如何输入数据,小黑框闪退?](https://blog.youkuaiyun.com/qq_44697303/article/details/124244743)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [完美解决 VsCode 一闪而过 闪屏 非语法 黑窗口 黑框 小黑窗 一闪而过 插件 F8运行编译](https://blog.youkuaiyun.com/weixin_49486457/article/details/124824688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值