收藏
回答

selectorQuery中exec方法,点击同一个组件两次top和scrollTop参数为何不同?

直接上代码:

    

/**

  * 点击左侧导航栏

  */

slidebarChange: function(event) {

let tarId = "#index" + event.detail + "_0";

const query = wx.createSelectorQuery()

query.select(tarId).boundingClientRect()

query.selectViewport().scrollOffset()

query.exec(function(res) {

console.log(res);

let selectTop = res[0].top;

let scrollTop = res[1].scrollTop;

wx.pageScrollTo({

scrollTop: selectTop,

})

})

},

在点击同一个导航栏的时候     selectTop 和scrollTop 相互变化

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

2 个回答

  • bryan
    bryan
    2020-07-10

    如果节点在 scroll-view 中,需要这样处理:

    const query = wx.createSelectorQuery()
    query.select('#filter_bar').boundingClientRect()
    query.select('#page-scroll-view').scrollOffset()
    query.exec(function(res){
      const [rect, scrollRect] = res
      let top = (rect && rect.top) || 0
      let scrollTop = (scrollRect && scrollRect.scrollTop) || 0
      const offsetTop = scrollTop + top 
    })
    
    2020-07-10
    有用 3
    回复 1
    • 古笙
      古笙
      2023-06-09
      请问大佬,如果是获取高度,该怎么处理才会稳定,我现在就是这样获取高度有的时候好大,有的时候正常
      2023-06-09
      回复
  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-11-01

    页面滚动了吧

    2019-11-01
    有用
    回复 8
    • Echokh
      Echokh
      2019-11-01
      是方法不会用
      2019-11-01
      回复
    • Awake
      Awake
      2020-01-17回复Echokh
      我也遇到这样问题了,请问楼主解决了吗
      2020-01-17
      回复
    • Echokh
      Echokh
      2020-01-17回复Awake
      解决了
      2020-01-17
      回复
    • Awake
      Awake
      2020-01-17回复Echokh
      请问如何解决的,能告知下思路吗,谢谢
      2020-01-17
      回复
    • Echokh
      Echokh
      2020-01-17回复Awake
      你要先弄懂这两个参数是干什么用的?
      2020-01-17
      回复
    查看更多(3)
登录 后发表内容
问题标签