官方文档 wx.pageScrollTo(Object object)
该效果在微信开发者工具的模拟器,苹果手机上都正常滚动;但是在安卓手机上看不到正常的滚动效果,我见到过的bug有
- 从当前位置,滚动到最顶部,再滚动到指定位置
- 滚动到指定距离的偏差大
如果只达到指定距离,而忽略滚动效果,可以在安卓手机上避免这样的bug出现,只需要把duration设置为0(直接跳到指定位置)
代码如下:
wx.pageScrollTo({
scrollTop: 100,
duration: 0
})
也可以针对安卓、苹果做不同的处理(仅苹果出现滚动效果)。此时需要获取用户设备信息,官方文档 wx.getSystemInfo(Object object),主要使用到system属性
封装公共代码:
systemType () {
let systemType = ''
wx.getSystemInfo({
success: (res) => {
let system = res.system
if (system.indexOf('iOS') >= 0)
systemType = 'iOS'
else
systemType = 'Android'
}
})
return systemType
}
在涉及滚动操作的地方执行以下代码:
let systemType = this.systemType()
if (systemType === 'iOS') {
wx.pageScrollTo({
scrollTop: this.data.recommend_talk_top
})
}
else {
wx.pageScrollTo({
scrollTop: this.data.recommend_talk_top,
duration: 0
})
}
注意:在切换tab栏时,应先设置tab栏当前索引值,在执行滚动
selectTab (event) {
let index = event.currentTarget.dataset.index
let article_tab_top = this.data.recommend_talk_top
this.setData({
at_index: index,
})
wx.pageScrollTo({
scrollTop: recommend_talk_top,
duration: 0
})
},