小程序 API 能力汇总——TYML IntersectionObserver API

news/2024/10/22 16:20:39/

ty.createIntersectionObserver

创建并返回一个 IntersectionObserver 对象实例。在自定义组件或包含自定义组件的页面中,应使用 this.createIntersectionObserver([options]) 来代替。

使用方式

ty.createIntersectionObserver(instance, [options]);
this.createIntersectionObserver([options]);

instance

页面实例或自定义组件实例。

options

选项

属性类型默认值必填说明最低版本
thresholdsArray<number>[0]一个数值数组,包含所有阈值。
initialRationumber0初始的相交比例,如果调用时检测到的相交比例与这个值不相等且达到阈值,则会触发一次监听器的回调函数。
observeAllbooleanfalse是否同时观测多个目标节点(而非一个),如果设为 true ,observe 的 targetSelector 将选中多个节点(注意:同时选中过多节点将影响渲染性能)
返回值

IntersectionObserver

示例代码
Page({onLoad() {this._observer = ty.createIntersectionObserver(this);this._observer.relativeTo('.scroll-view').observe('.ball', (res) => {this.setData({appear: res.intersectionRatio > 0,});});},onUnload() {if (this._observer) this._observer.disconnect();},
});

IntersectionObserver

IntersectionObserver 对象,用于推断某些节点是否可以被用户看见、有多大比例可以被用户看见。

方法

IntersectionObserver.observe

指定目标节点并开始监听相交状态变化情况

IntersectionObserver.disconnect

停止监听。回调函数将不再触发

IntersectionObserver IntersectionObserver.relativeTo

使用选择器指定一个节点,作为参照区域之一。

IntersectionObserver IntersectionObserver.relativeToViewport

指定页面显示区域作为参照区域之一

observe

IntersectionObserver.observe(string targetSelector, function callback)

指定目标节点并开始监听相交状态变化情况

参数
string targetSelector

选择器

function callback

监听相交状态变化的回调函数

参数

Object res

属性类型说明
idstring节点 ID
datasetRecord.<string, any>节点自定义数据属性
intersectionRationumber相交比例
intersectionRectObject相交区域的边界
boundingClientRectObject目标边界
relativeRectObject参照区域的边界
timenumber相交检测时的时间戳

res.intersectionRect 的结构

属性类型说明
leftnumber左边界
rightnumber右边界
topnumber上边界
bottomnumber下边界
widthnumber宽度
heightnumber高度

res.boundingClientRect 的结构

属性类型说明
leftnumber左边界
rightnumber右边界
topnumber上边界
bottomnumber下边界
widthnumber宽度
heightnumber高度

res.relativeRect 的结构

属性类型说明
leftnumber左边界
rightnumber右边界
topnumber上边界
bottomnumber下边界

disconnect

IntersectionObserver.disconnect()

停止监听。回调函数将不再触发

relativeTo

IntersectionObserver.relativeTo(string selector, Object margins)

使用选择器指定一个节点,作为参照区域之一。

参数

string selector

选择器

Object margins

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

属性类型默认值必填说明
leftnumber节点布局区域的左边界
rightnumber节点布局区域的右边界
topnumber节点布局区域的上边界
bottomnumber节点布局区域的下边界

返回值

IntersectionObserver

relativeToViewport

IntersectionObserver.relativeToViewport(Object margins)

指定页面显示区域作为参照区域之一

Object margins

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

属性类型默认值必填说明
leftnumber节点布局区域的左边界
rightnumber节点布局区域的右边界
topnumber节点布局区域的上边界
bottomnumber节点布局区域的下边界

返回值 IntersectionObserver

示例代码

Page({onLoad: function () {ty.createIntersectionObserver(this).relativeToViewport({ bottom: 100 }).observe('.target-class', (res) => {res.intersectionRatio; // 相交区域占目标节点的布局区域的比例res.intersectionRect; // 相交区域res.intersectionRect.left; // 相交区域的左边界坐标res.intersectionRect.top; // 相交区域的上边界坐标res.intersectionRect.width; // 相交区域的宽度res.intersectionRect.height; // 相交区域的高度});},
});

👉 立即开发。


http://www.ppmy.cn/news/1372474.html

相关文章

mac电脑版MATLAB R2023b for Mac中文激活版

MATLAB R2023b for Mac&#xff1a;科学计算的终极工具 软件下载&#xff1a;MATLAB R2023b for Mac中文激活版下载 &#x1f52c; 探索科学&#xff0c;无限可能 MATLAB R2023b for Mac&#xff0c;助您深入挖掘科学计算的奥秘。从数据分析、算法设计到可视化展示&#xff0c;…

hive实战项目:旅游集市数仓建设

旅游集市数仓建设 文章目录 旅游集市数仓建设为什么要设计数据分层&#xff1f;分层设计ODS&#xff08;Operational Data Store&#xff09;&#xff1a;数据运营层DW&#xff08;Data Warehouse&#xff09;&#xff1a;数据仓库层DWD&#xff08;Data Warehouse Detail&…

浏览器发出一个请求到收到响应步骤详解

前言 在网络通信中&#xff0c;浏览器向Web服务器发送HTTP请求消息的过程是一个复杂而精密的环节&#xff0c;涉及到URL解析、DNS解析、数据拆分、路由表规则和MAC头部添加等一系列步骤。本文将深入探讨这一过程的每个环节&#xff0c;帮助读者更全面地了解浏览器与Web服务器之…

二维码门楼牌管理系统应用场景:助力消防局快速响应火警守护城市安全

文章目录 前言一、消防局应用场景概述二、智慧门牌平台的优势三、与消防部门的联动机制四、最大程度地减小火灾损害五、未来展望 前言 在智慧城市的建设中&#xff0c;二维码门楼牌管理系统作为一种创新的管理工具&#xff0c;正在逐步被各地消防局采纳和应用。这一系统通过集…

08-prometheus监控的告警通知-alertmanager组件工具

一、概述 prometheus通过规则文件对比抓取到的数据&#xff0c;来判断是否触发告警&#xff0c;我们通过配置告警的工具altermanager进行告警通知&#xff1b; 规则文件&#xff0c;写的就是&#xff0c;当我们获取到的PromeQL的值到达一个设置的规则后&#xff0c;触发告警&am…

Git 进阶 高级用法,重要命令记录

本篇文章用于记录Git高级用法&#xff0c;新手可以看我的另一篇文章&#xff1a;Git基础教学。 Git git fetch 是git pull 的细分步骤&#xff0c;git pull 包含了git fetch git pull origin master 上述命令其实相当于git fetch git merge 在实际使用中&#xff0c;git fetc…

sora笔记(一):sora前世今生与技术梗概

:::info &#x1f4a1; 近日&#xff0c;OpenAI发布了视频生成模型Sora&#xff0c;最大的Sora模型能够生成一分钟的高保真视频。同时 OpenAI称&#xff0c;可扩展的视频生成模型&#xff0c;是构建物理世界通用模拟器的一条可能的路径。 **&#x1f4c3; **Sora能够生成横屏1…

嵌入式Linux开发板测试esp8266模块

一、介绍 ESP8266是一款流行的Wi-Fi微控制器&#xff0c;通常用于物联网项目中。在嵌入式Linux开发板上使用C语言开发ESP8266&#xff0c;意味着我们将通过串口或其他通信方式&#xff0c;从Linux系统上发送AT指令来控制ESP8266。AT指令集是一种用于控制调制解调器和其他设备的…