微信小程序——日常踩坑(wx.pageScrollTo滚动时有抖动问题)

在小程序的开发过程中,有个功能是点击后需要往view层中添加数据内容,在添加后需要将内容滚动到最下面一条,以便有更好的用户体验。
开始是选择了使用wx.pageScrollTo接口,通过获取当前view层的高度来动态的调整pageScrollTo中的scrollTop值

wx.createSelectorQuery().select('.newsContent').boundingClientRect(function (rect) {
  // 使页面滚动到底部
   wx.pageScrollTo({
     scrollTop: rect.height,
     duration:1500
   })
}).exec()

到目前一切看起来好像很ok,但是。。。
在部分安卓机型中,例如华为等机型会在滚动的时候,触发一下拉刷新,也就是说,在触发wx.pageScrollTo之后,会先滚动到最顶端,触发刷新,再从最顶端滚动到我们需要的位置。(这是十分影响用户体验的,整体效果非常差)

在iphone机型中,在触发wx.pageScrollTo时,如果页面中有fixed定位的元素,定位的元素会跟随页面滚动,再回到位置上

这个问题非常的折磨人,因为pageScrollTo这个api不仅有bug这个bug在不同机型环境下竟然还不一样!!!之后我将pageScrollTo的滚动动画时间duration设置为0后,在真机上,都不会出现抖动的问题,因为这个过程其实是直接跳过了,但是直接出来整体的体验也十分糟糕,出现的非常的唐突。

最后,改使用scroll-view

<scroll-view scroll-y class="container" enable-back-to-top="true" style="height: {{windowHeight}}rpx;"  bindscroll="touchclose" scroll-with-animation="true" scroll-top="{{scrollTop}}">
    <!-- 内容 -->
    <view>-----略------</view>
</scroll-view>

使用scroll-view后可以实现一样的滚动效果,而且是没有抖动的。效果还是比较好的,就我的这个项目来说,用scroll-view的bug要少些,体验要优于pageScrollTo。

ps:关于pageScrollTo的问题,导致安卓和iphone机型不同的原因可能是因为二者小程序运行时候的内核不同,关于该问题的相关的问题解决办法还没有找到比较合适的,小程序社区中有看到有人提出类似问题,但是官方暂时还没有修复pageScrollTo的bug。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值