收藏
回答

uniapp vue3 怎么获取元素的rect信息?

const query = uni.createSelectorQuery()

query.select('#cardcontent').fields({

rect: true,

size: true,

}, res => {

console.log("card size:",res)

}).exec()


我用以上代码在浏览器上面是正常可以获取到rect,但是在微信开发的模拟器总是为null

请问大佬们这是什么原因呢?感谢感谢

回答关注问题邀请回答
收藏

1 个回答

  • CRMEB
    CRMEB
    2023-10-23

    在uni-app中,获取元素的rect信息时,需要确保元素已经渲染完成。你可以尝试使用`ready`方法来确保元素已经渲染完成,然后再进行获取。以下是修改后的代码:


    const query = uni.createSelectorQuery()
    
    query.select('#cardcontent').fields({
      rect: true,
      size: true,
    }, res => {
      console.log("card size:", res)
    }).exec()
    
    // 确保元素渲染完成后再执行获取操作
    query.ready(res => {
      if (res) {
        console.log("元素已渲染完成")
      } else {
        console.log("元素未渲染完成")
      }
    }).exec()
    


    这样,你应该可以在微信开发模拟器上正常获取到元素的rect信息了。

    2023-10-23
    有用
    回复 2
    • 冬瓜皮er
      冬瓜皮er
      2023-10-23
      首先感谢回复。
      我按照以上代码尝试了,在vue3中没有提供ready函数了,直接就报错了。我是写在
      <script setup>
      onMounted(() => {
      ####以上代码块####
      }
      <script>
      2023-10-23
      回复
    • CRMEB
      CRMEB
      2023-10-23回复冬瓜皮er
      你可以使用onMounted生命周期钩子来替代ready函数
      2023-10-23
      回复
登录 后发表内容