微信小程序回到顶部

一.在view下面使用直接使用,没有在scroll-view下面使用

wxml页面,catchtap阻止冒泡事件。

   <view class="back-top" catchtap="goTopOn" hidden='{{!cangotop}}'>
    <van-icon name="back-top" size="60rpx"/>
   </view>

wxss界面

.back-top{
  position: fixed;
  right: 40rpx;
  bottom: 90rpx;
  height: 90rpx;
  width: 90rpx;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center; 
  background-color: #ffffff;
  box-shadow: 0px 0px 5px 0 rgba(0, 0, 0, 0.3) ;
}

js界面

 // 获取滑动位置
 onPageScroll: function (e) {
    //当页面滑动距离大于一屏的高度时显示回到顶部控件
   this.setData({
       cangotop: e.scrollTop > wx.getSystemInfoSync().windowHeight ? true : false
      });
  },
    //回到顶部,内部调用系统API
    goTopOn: function (e) {
      if (wx.pageScrollTo) {
          wx.pageScrollTo({
              scrollTop: 0
          })
      } else {
          wx.showModal({
              title: '提示',
              content: '当前微信版本过低,暂无法使用该功能,请升级后重试。'
          })
      }
    }

二.在scroll-view下面使用

wxml页面 scroll-with-animation:使用滚动动画过渡

<scroll-view class="cate" scroll-y="true"  bindscroll="srollViewTop" scroll-into-view="{{top}}" scroll-with-animation="true">
 <view class="back-top" catchtap="goTopOn" hidden='{{!cangotop}}'>
    <van-icon name="back-top" size="60rpx"/>
 </view>
</scroll-view>

wxss界面

 .back-top{
  position: fixed;
  right: 40rpx;
  bottom: 120rpx; 
  height: 90rpx;
  width: 90rpx;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #ffffff;
  box-shadow: 0px 0px 5px 0 rgba(0, 0, 0, 0.3) ;
}

js界面:

 data:{
    topNum: 0
  }
  srollViewTop(e){
       this.setData({
        cangotop: e.detail.scrollTop > wx.getSystemInfoSync().windowHeight-180 ? true : false
    });
  },
  // 回到顶部
  goTopOn: function () {
    this.setData({
        topNum:0
    })
  }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值