小程序 - wx.pageScrollTo安卓手机上滚动异常

官方文档 wx.pageScrollTo(Object object)

该效果在微信开发者工具的模拟器,苹果手机上都正常滚动;但是在安卓手机上看不到正常的滚动效果,我见到过的bug有

  1. 从当前位置,滚动到最顶部,再滚动到指定位置
  2. 滚动到指定距离的偏差大

如果只达到指定距离,而忽略滚动效果,可以在安卓手机上避免这样的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
  })
},

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值