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

NodesRef

用于获取 TYML 节点信息的对象

方法

SelectorQuery NodesRef.fields(Object fields, NodesRef.FieldsCallback callback)

获取节点的相关信息。需要获取的字段在 fields 中指定。返回值是 nodesRef 对应的 selectorQuery

SelectorQuery NodesRef.boundingClientRect(NodesRef.boundingClientRectCallback callback)

添加节点的布局位置的查询请求。相对于显示区域,以像素为单位。其功能类似于 DOM 的 getBoundingClientRect。返回 NodesRef 对应的 SelectorQuery。

SelectorQuery NodesRef.scrollOffset(NodesRef.scrollOffsetCallback callback)

添加节点的滚动位置查询请求。以像素为单位。节点必须是 scroll-view 或者 viewport,返回 NodesRef 对应的 SelectorQuery。

NodesRef.boundingClientRect(function callback)

添加节点的布局位置的查询请求。相对于显示区域,以像素为单位。其功能类似于 DOM 的 getBoundingClientRect。返回 NodesRef 对应的 SelectorQuery。

参数
function callback

回调函数,在执行 SelectorQuery.exec 方法后,节点信息会在 callback 中返回。

参数

Object res

属性类型说明
idstring节点的 ID
datasetObject节点的 dataset
leftnumber节点的左边界坐标
rightnumber节点的右边界坐标
topnumber节点的上边界坐标
bottomnumber节点的下边界坐标
widthnumber节点的宽度
heightnumber节点的高度

返回值

SelectorQuery

示例代码

Page({
  getRect() {
    ty.createSelectorQuery()
      .select('#the-id')
      .boundingClientRect(function (rect) {
        rect.id; // 节点的ID
        rect.dataset; // 节点的dataset
        rect.left; // 节点的左边界坐标
        rect.right; // 节点的右边界坐标
        rect.top; // 节点的上边界坐标
        rect.bottom; // 节点的下边界坐标
        rect.width; // 节点的宽度
        rect.height; // 节点的高度
      })
      .exec();
  },
  getAllRects() {
    ty.createSelectorQuery()
      .selectAll('.a-class')
      .boundingClientRect(function (rects) {
        rects.forEach(function (rect) {
          rect.id; // 节点的ID
          rect.dataset; // 节点的dataset
          rect.left; // 节点的左边界坐标
          rect.right; // 节点的右边界坐标
          rect.top; // 节点的上边界坐标
          rect.bottom; // 节点的下边界坐标
          rect.width; // 节点的宽度
          rect.height; // 节点的高度
        });
      })
      .exec();
  },
});

NodesRef.fields(Object fields, function callback)

获取节点的相关信息。需要获取的字段在 fields 中指定。返回值是 nodesRef 对应的 selectorQuery

参数
Object fields
属性类型默认值必填说明
idbooleanfalse是否返回节点 id
datasetbooleanfalse是否返回节点 dataset
rectbooleanfalse是否返回节点布局位置(left right top bottom
sizebooleanfalse是否返回节点尺寸(width height
scrollOffsetbooleanfalse是否返回节点的 scrollLeft scrollTop,节点必须是 scroll-view 或者 viewport
propertiesArray<string>[]指定属性名列表,返回节点对应属性名的当前属性值(只能获得组件文档中标注的常规属性值,id class style 和事件绑定的属性值不可获取)
nodebooleanfalse是否返回节点对应的 Node 实例
function callback

回调函数

参数
Object res

节点的相关信息

返回值

SelectorQuery

示例代码

Page({
  getFields() {
    ty.createSelectorQuery()
      .select('#the-id')
      .fields(
        {
          dataset: true,
          size: true,
          scrollOffset: true,
          properties: ['scrollX', 'scrollY'],
        },
        function (res) {
          res.dataset; // 节点的dataset
          res.width; // 节点的宽度
          res.height; // 节点的高度
          res.scrollLeft; // 节点的水平滚动位置
          res.scrollTop; // 节点的竖直滚动位置
          res.scrollX; // 节点 scroll-x 属性的当前值
          res.scrollY; // 节点 scroll-y 属性的当前值
        },
      )
      .exec();
  },
});

NodesRef.scrollOffset(function callback)

添加节点的滚动位置查询请求。以像素为单位。节点必须是 scroll-view 或者 viewport,返回 NodesRef 对应的 SelectorQuery。

参数
function callback

回调函数,在执行 SelectorQuery.exec 方法后,节点信息会在 callback 中返回。

参数
Object res
属性类型说明
idstring节点的 ID
datasetObject节点的 dataset
scrollLeftnumber节点的水平滚动位置
scrollTopnumber节点的竖直滚动位置

返回值

SelectorQuery

示例代码

Page({
  getScrollOffset() {
    ty.createSelectorQuery()
      .selectViewport()
      .scrollOffset(function (res) {
        res.id; // 节点的ID
        res.dataset; // 节点的dataset
        res.scrollLeft; // 节点的水平滚动位置
        res.scrollTop; // 节点的竖直滚动位置
      })
      .exec();
  },
});

👉 立即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IoT砖家涂拉拉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值