在做微信小程序开发时,遇到一个问题,要如何实现返回顶部的功能,一时没有找到好方法,后来虽然可以使用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: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。' }) } }