在做微信小程序开发时,遇到一个问题,要如何实现返回顶部的功能,一时没有找到好方法,后来虽然可以使用scroll-view组件实现,但并没有像网页那样好,会有一些其他的限制,那么要如何实现返回顶部的功能呢?,以下就是自己曾经使用过的微信小程序实现返回顶部的两种方法,在此简单记录一下。

一、使用scroll-view的scroll-top实现,也就是置顶时,改变scroll-top为0

当时使用这种方法时,基础库还是1.3.0以下,会有一些限制,比如下拉刷新enablePullDownRefresh不能使用,虽然scroll-view有bindscrolltoupper,但是体验比较差,不是一样的效果,上拉加载更多倒是可以使用bindscrolltolower实现。
用这种方法的具体代码如下:
wxml:

<scroll-view  class="scroll-box" scroll-y="true" bindscroll="scrollFun" scroll-top="{{scrollTop}}" style="height:{{ scrollHeight }}px" enable-back-to-top="true" bindscrolltolower="loadMoreFun">
    <view class="scroll-main">
      <!--商品列表-->
      <view class="product-box">
          <block wx:for="{{ productData }}">
            <view class="item" data-id="{{ item.id }}">
                <image src="{{ item.image }}"></image>
                <text class="title">{{ item.name }}</text>
            </view>
          </block>
      </view>
    </view> <!--scroll-main end--> 
    <!--回到顶部-->
    <view class="go-top" bindtap="goTop"></view>
</scroll-view>
js:
//返回顶部
goTop: function (e) {
   this.setData({
	scrollTop: 0
   })
}

二、使用pageScrollTo实现返回顶部

wx.pageScrollTo:将页面滚动到目标位置,这个是基础库 1.4.0 开始支持(大概是2017-7-12更新的吧),低版本需做兼容处理。
实现的代码也比较简单,如下:

//返回顶部
goTop: function (e) {
 if (wx.pageScrollTo) {
    wx.pageScrollTo({
      scrollTop: 0
    })
  } else {
    wx.showModal({
      title: '提示',
      content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
    })
  }
}