收藏
回答

boundingClientRect获取的高度不准确

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug boundingClientRect 客户端 iOS 6.6.6 1.9.9

有个需要是判断当前滚动到什么位置,然后高亮顶部对应的菜单。因为元素的内容是从接口获取的,需要获取在获取数据并页面渲染完成之后的元素高度,在setdata的callback里使用

    wx.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()

获取高度发现不一定是页面渲染之后的高度。

怎么样才能获取到元素的渲染后高度或者有什么其他的方法可以实现这个需求?

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

18 个回答

  • MU
    MU
    2019-12-13

    同样遇到获取的高度跟实际渲染高度不一致的问题,现在有啥解决办法吗?

    2019-12-13
    有用
    回复
  • 胡泽涵
    胡泽涵
    2019-02-25

    我也碰到这个问题了,其实就是小程序缺乏像  vue.$nextTick 这样的hook,渲染完成也没有办法感知。 临时的hack 也只能 setTimeout(fn,  合理时间) 了

    2019-02-25
    有用
    回复
  • '
    '
    2018-09-11

    我的解决办法:

    boundingClientRect 方法放到 ajax请求完成之后

    然后获取的高度就正常了

    so

    小程序生命周期是什么鬼


    2018-09-11
    有用
    回复 1
    • Mai
      Mai
      2021-08-27
      我试过这样也不行,因为数据请求到了dom了不一定渲染完了
      2021-08-27
      回复
  • Lynn
    Lynn
    2018-06-10
    同遇到不准的情况,请问有解了么?
    2018-06-10
    有用
    回复
  • 江江
    江江
    2018-06-07

    求教您,我想做一个锚点效果,点击目录跳到节点,用

     rect.top

    我取到的距顶高度每次都不一样,除非一开始就从顶部点,才是正确的高度,如果滚到中间了再点目录,高度就变了,要如何重置高度吗?


    2018-06-07
    有用
    回复 6
    • Youngwell
      Youngwell
      2019-10-31
      一年多了,现在我也遇到这个问题,请问你解决了吗?
      2019-10-31
      回复
    • 来一份黑咖啡
      来一份黑咖啡
      2020-04-29回复Youngwell
      请问这个问题解决了吗,我也遇到这个问题了,盼回复
      2020-04-29
      回复
    • Youngwell
      Youngwell
      2020-04-29回复来一份黑咖啡
      我后来改用 wx.createIntersectionObserver(),这个性能比那个好,具体怎么用你查查文档
      2020-04-29
      回复
    • 来一份黑咖啡
      来一份黑咖啡
      2020-04-29回复Youngwell
      锚点能做吗
      2020-04-29
      回复
    • Youngwell
      Youngwell
      2020-04-29回复来一份黑咖啡
      能,我就是用这个做的锚点
      2020-04-29
      回复
    查看更多(1)
  • 林滔a
    林滔a
    2018-04-17

    我遇到的问题是把一段文字塞到一个元素(它的初始高度为0)里,需要塞完后的高度...

    2018-04-17
    有用
    回复
  • 林滔a
    林滔a
    2018-04-17

    页面渲染完之后才能拿,但怎么判断页面渲染完呢?

    2018-04-17
    有用
    回复
  • 梁嘉财、
    梁嘉财、
    2018-04-17

    求回复

    2018-04-17
    有用
    回复

正在加载...

登录 后发表内容