收藏
回答

小程序获取元素高度的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
        })
       
    })


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

1 个回答

  • 祺爸💎
    祺爸💎
    2019-07-12

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

    2019-07-12
    有用
    回复 5
    • change。
      change。
      2019-07-12
      0.0 我看看,谢谢。
      2019-07-12
      回复
    • change。
      change。
      2019-07-12回复change。

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

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

      滚动距离还是需要计算啊

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