收藏
回答

小程序获取元素高度的API有时候会只获取到一半

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug wx.createSelectorQuery(); 客户端 7.0.5 2.7.5[263]

- 当前 Bug 的表现(可附上截图)

需求: 点击tab分类的时候tab分类移动到顶部。

实现: 通过 wx.createSelectorQuery(); api获取到元素的高度,然后通过wx.pageScrollTo进行移动,偶尔(大约二十次触发一次)的时候会只移动一半的距离。

大体逻辑如下

const query = wx.createSelectorQuery();
    let index = e.target.dataset.index;
    let top = 0;
    query.select('#index' + index).boundingClientRect()
    query.selectViewport().scrollOffset()
    query.exec(function (res) {
      curTop = res[0].top + res[1].scrollTop;
      
        that.setData({ count: 2 })
        var addTop = res[0].top + res[1].scrollTop;
        that.setData({ currentTop: addTop })
        top = that.data.currentTop ? that.data.currentTop : curTop;
        wx.pageScrollTo({
          scrollTop: top + 2,
          duration: 300
        })
       
    })


最后一次编辑于  07-12  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

6 个回答

  • 祺爸💎
    祺爸💎
    07-12

    wx.pageScrollTo支持锚点,不用自己计算高度了

    07-12
    赞同
    回复 5
    • change。
      change。
      07-12
      0.0 我看看,谢谢。
      07-12
      赞同
      回复
    • change。
      change。
      07-12回复change。

      他的滚动距离是必填的啊。

      wx.pageScrollTo({
            scrollTop: '0',
            selector: '.categroy-left',
            duration: 300
          })

      滚动距离还是需要计算啊

      07-12
      赞同
      回复
    • 祺爸💎
      祺爸💎
      07-12回复change。
      不必填,你自己实际试过吗?
      07-12
      赞同
      回复
    • change。
      change。
      07-12回复祺爸💎
      在试啊,刚才贴的代码就是我项目里复制过来的。
      07-12
      赞同
      回复
    • 祺爸💎
      祺爸💎
      07-12
      把scrollTop去掉你试过吗?
      07-12
      赞同
      回复