微信小程序实现点击返回顶层的方法
程序员文章站
2023-02-23 23:32:46
最近在研究微信小程序,被这个返回顶层给坑了一波,下面贴代码
wxml代码:
最近在研究微信小程序,被这个返回顶层给坑了一波,下面贴代码
wxml代码:
<scroll-view scroll-y style="height: 1000rpx;" scroll-top="50" enable-back-to-top="true" scroll-top="{{scrolltop.scroll_top}}" bindscroll="scrolltopfun"> <block wx:for="{{sortarr}}"> <template is="spl" data="{{item}}"></template> </block> </scroll-view> <!-- 联系客服 --> <view class="findour fliexbox"><contact-button type="default-light" size="15" session-from="weapp"></contact-button>客服</view> <!-- 拨打电话 --> <view class="callour fliexbox" bindtap="call">电话</view> <view class="fliexbox" style=" bottom: 150rpx; border: solid 1px green;" wx:if="{{scrolltop.gotop_show}}" catchtap="gotopfun">顶层</view>
js代码:
var app = getapp(); page({ data: { hidden: true, list: [], scrolltop: { scroll_top: 0, gotop_show: false }, scrollheight: 0, floorstatus:true, sortarr:[ { id: 1, img: "../../images/2.jpg", title: "君御豪园住宅", introduction: "杭州不限购不限贷口住宅", money: 5000, vperson: 115, tperson: 0 } ], }, scrolltopfun: function (e) { console.log(e.detail); if (e.detail.scrolltop > 300) {//触发gotop的显示条件 this.setdata({ 'scrolltop.gotop_show': true }); } else { this.setdata({ 'scrolltop.gotop_show': false }); } }, gotopfun: function (e) { var _top = this.data.scrolltop.scroll_top;//发现设置scroll-top值不能和上一次的值一样,否则无效,所以这里加了个判断 if (_top == 0) { _top = 1; } else { _top = 0; } this.setdata({ 'scrolltop.scroll_top': _top }); }, /** * 生命周期函数--监听页面加载 */ onload: function (options) { var that = this; wx.getsysteminfo({ success: function (res) { that.setdata({ scrollheight: res.windowheight }); } }); }, })
wxss代码:
.fliexbox{ width: 100rpx; height: 50rpx; background-color: #5db13b; color: #ffffff; text-align: center; position: fixed; right: 0rpx; bottom: 85rpx; border-radius: 20rpx 0rpx 0rpx 20rpx; font-size: 26rpx; line-height: 50rpx; opacity: .6; } .callour{ bottom: 20rpx; } contact-button{ opacity: 0; position: absolute; }
主要是需要把scroll-view 组件的高度设置起来而且不能是百分比 如100%这样,可以是rpx,这样才可以监测到滑动的距离。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。