如何解决createSelectorQuery获取节点元素高度不准确?

文章讲述了在微信小程序开发中,如何确保元素渲染完毕后进行操作。使用onReady事件来获取默认节点,对于由变量控制的节点,可以在methods内定义函数,并可能需要在函数中加入this.nextTick()或setTimeout来确保异步执行。特别是涉及到-margi和widthFix的布局调整时,可能需要setTimeout来保证正确的计算时机。
摘要由CSDN通过智能技术生成

获取的早了,确保渲染完毕后再获取

如果只获取默认的节点用onReady获取即可,变量控制的用methods里面的函数,还不行就在函数里面写this.nextTick()或用延迟setTimeout

  onReady() {
    const self = this

    let q = uni.createSelectorQuery()
    //获取购物车位置
    setTimeout(function () {
      q.select('#cart').boundingClientRect(data => {
        self.cartBasketRect = data
      }).exec();
    }, 100)

  },

用-margin和widthFix需要用setTimeout延迟

参考:https://developers.weixin.qq.com/community/develop/doc/00082a45ef8bf832f329c632f5d800
https://developers.weixin.qq.com/community/develop/doc/0008cc408a41d88d114806a1f56c00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值