pito
pito
  • 发布:2021-04-01 16:25
  • 更新:2021-04-02 22:44
  • 阅读:3646

uni-app 如何获取子元素相对父元素的位置

分类:uni-app

看文档 方法都是获取相对窗口的位置

view.fields({
size: true,
scrollOffset: true,
rect: true
}, data => {
console.log("得到节点信息" + JSON.stringify(data));
console.log("节点的宽为" + data.width);
}).exec();

2021-04-01 16:25 负责人:无 分享
已邀请:
暮雪骄阳

暮雪骄阳

直接获取父元素位置,直接获取子元素位置,子元素位置,减去父元素位置,是不是一个意思啊?

  • pito (作者)

    不是 举个例子 比如一个长列表中的列表相对于列表容器的相对位置 看文档上好像只有列表相对于窗口的位置

    2021-04-01 18:34

  • 暮雪骄阳

    回复 pito: 没搞懂,你是什么需求啊?什么场景需要子元素相对于父元素的位置?那你的position:absolute;top:0;不能满足需求?top等于多少就是多少

    2021-04-01 22:03

  • 暮雪骄阳

    回复 暮雪骄阳: 这玩意都得计算的吧,好比你子元素是B,上头还有个有可能高度会不一样的子元素A,你要获得这个B元素在父元素的位置,你得先遍历获取A元素的高度。如果这样能达到需求,那你要问的问题,应该是怎么分别计算得到A元素的高度,我这么理解没错吧?

    2021-04-01 22:14

  • pito (作者)

    回复 暮雪骄阳: 唉 理论上是的 但是h5开发的时候 子元素相对于父元素的相对位置是可以通过dom自带方法得到的 所以我想问问 uni-app 有没有类似方法 毕竟uni-app 木有document操作

    2021-04-02 15:00

  • 暮雪骄阳

    回复 pito: https://uniapp.dcloud.io/api/ui/nodes-info?id=createselectorquery

    2021-04-02 22:44

暮雪骄阳

暮雪骄阳

uni.createSelectorQuery().in(this).select('.abc').boundingClientRect(data => {  
    this.XXXheight = data.height  
}).exec()

你要理解成是documen其实也可以,差不多就这意思

该问题目前已经被锁定, 无法添加新回复