uni-app 滚动条无法回到顶部解决办法

当在uni-app中使用click事件设置scroll-top=0无法使滚动条回到顶部时,可以通过监听@scroll事件并结合old.scrollTop实现。在getActive方法中,先将scrollTop设为old.scrollTop,然后在$nextTick中将scrollTop设为0。同时添加@scroll=scrollChange监听滚动,保存每次滚动的位置,以便后续使用。

问题:在click事件中设置了scroll-top = 0后,uni-app 滚动条还是无法回到顶部.

<view :class="active == index? 'active' : ''"  @click="getActive(index)" v-for="(item,index) in categories" :key="item.cat_id">{{ item.cat_name }}</view>
<scroll-view class="right" scroll-y :scroll-top="scrollTop" >
			<view class="data" v-for="(list,index) in rightData" :key="list.cat_id">
				<image @click="showImage(list.cat_icon)" :src="list.cat_icon"></image>
				<view>{{ list.cat_name}}</view>
			</view>
			<view class="none" v-if="show">暂无数据</view>
</scroll-view>

 

解决办法:

添加 @scroll="scrollChange"

<view :class="active == index? 'active' : ''"  @click="getActive(index)" v-for="(item,index) in categories" :key="item.cat_id">{{ item.cat_name }}</view>
		<scroll-view class="right" scroll-y :scroll-top="scrollTop" @scroll="scrollChange">
			<view class="data" v-for="(list,index) in rightData" :key="list.cat_id">
				<image @click="showImage(list.cat_icon)" :src="list.cat_icon"></image>
				<view>{{ list.cat_name}}</view>
			</view>
			<view class="none" v-if="show">暂无数据</view>
</scroll-view>
		data() {
			return {
				categories: [],
				active: 0,
				rightData: [],
				index: 0,
				scrollTop: 0,
				old: {
					scrollTop: 0
				}
			}
		},
getActive(index) {
	this.scrollTop = this.old.scrollTop
	this.$nextTick(()=>{
	this.scrollTop = 0 //赋值为0即代表返回顶部
	});
},

scrollChange(e) {
	// console.log(e)
	this.old.scrollTop = e.detail.scrollTop
},

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值