自定义导航的话就不要用选择器了,改用scrollTop,配合query接口使用,效果良好 //先获取导航高度 wx.getSystemInfo({ success: res => { const ios = !!(res.system.toLowerCase().search('ios') + 1) this.headerHeight = res.statusBarHeight + (ios?44:48) } }) //用目标的top值减去导航高度 const query = wx.createSelectorQuery() query.select('#'+id).boundingClientRect() query.selectViewport().scrollOffset() query.exec((res)=>{ wx.pageScrollTo({ scrollTop: res[0].top - this.headerHeight, duration: 300 }) })
自定义导航栏导致wx.pageScrollTo的selector指定元素位置出现偏差?[图片] 点击右下角的按钮是跳转到item number:5才对,因为自定义导航栏后导致偏差一个导航栏高度的位移。 https://developers.weixin.qq.com/s/hg2E3amA7zgu 后续: wx.pageScrollTo官方已经支持selector和offsetTop搭配解决问题,详情看https://developers.weixin.qq.com/miniprogram/dev/api/ui/scroll/wx.pageScrollTo.html
2020-10-20