scrollTop不生效解决(uniapp)

scrollTop不生效解决

直接解决不废话,两个问题仔细看


文章目录


一、使用scroll-view容器设置:scroll-top="scrollTop" 不生效

原因:其实很简单,不生效就是没有执行,因为uniapp的scroll-view组件限制:在某些情况下,直接设置相同的scroll-top值可能不会触发重新渲染

1.scroll-view容器重写机制影响

举🌰子:

如果你是下面这种或者甚至不进行重写,他确实执行了这个方法但是组件内部认为值未变更所以不执行,超级简单

javascript 复制代码
scrollTopFun() {
				this.scrollTop = 0;
				// 1秒后重置滚动位置(uni.scrollTop机制需要改变值热重载,否则不生效)
				setTimeout(() => {
					this.scrollTop = 0;
				}, 50);
			},

直接设置重写即可

javascript 复制代码
scrollTopFun() {
				this.scrollTop = 1;
				// 1秒后重置滚动位置(uni.scrollTop机制需要改变值热重载,否则不生效)
				setTimeout(() => {
					this.scrollTop = 0;
				}, 50);
			},

2.scroll-view容器未设置固定高度

*注意事项*

如果如上设置了参数,也设置了:scroll-top="scrollTop"未生效,考虑是不是没有给容器设置固定高度,如果容器不设置固定高度滚动无效哦

html 复制代码
<scroll-view scroll-y="true" :scroll-top="scrollTop" style="height: 600rpx">
	<view>
		<!-- ···你的内容 -->
	</view>
</scroll-view>

二、uni.pageScrollTo设置scrollTop滚动无效

代码如下(示例):

javascript 复制代码
	uni.pageScrollTo({
	 scrollTop: 0,  //锚点位置
	 duration: 300  //过渡时间
	});

其实这个就更简单了,如果使用了scroll-view就使用上面的方法即可,如果没使用scroll-view,那就检查一下需要滚动的容器是否处于根节点,因为uni.pageScrollTo 属于页面级别的滚动,需要处于根节点才能生效


总结

  • 问题一:scroll-view组件需要值变化才会触发重绘,试试先设个假值再改回来,就像哄小孩吃药先给颗糖🍬
  • 问题二:没给scroll-view定高度就像让跳高选手在游泳池比赛------根本蹦跶不起来🏊‍♂️

终极提醒:uni.pageScrollTo只认页面级滚动,别把它关在小黑屋(子容器)里干活!❌

相关推荐
2501_915921439 小时前
uni-app 上架 iOS 的完整流程(无需依赖 Mac)
android·macos·ios·小程序·uni-app·iphone·webview
于先生吖1 天前
前后端分离二手商城开发,质检登记、回收回款整套业务源码部署教程
java·开发语言·uni-app
Geek_Vison1 天前
政务一网通APP如何引入AI能力,通过一个AI助手就能够调用所有的功能,实现对话即办事
人工智能·ai·小程序·uni-app·小程序容器
狗凯之家源码网2 天前
UniApp 数藏系统源码部署与定制开发全指南
uni-app
RuoyiOffice3 天前
2026 企业定制开发选型:从零开发、低代码、SaaS 与 RuoYi Office 怎么选?
spring boot·uni-app·开源·saas·oa·定制化·ruoyioffice
三天不学习4 天前
【超详细】Vue3+UniApp+.NET8集成腾讯云IM即时通信全攻略
uni-app·.net·腾讯云·im·即时通信
于先生吖4 天前
前后端分离人事招聘项目,校招宣讲预约+社招双向撮合功能架构设计教程
java·开发语言·uni-app
QQ_5110082854 天前
uniapp微信小程序网上饰品商城售卖系统php python物流
微信小程序·uni-app·php
2501_915909064 天前
深入解析Mock.js:功能、应用及实战案例,提升前端开发效率
android·ios·小程序·https·uni-app·iphone·webview
于先生吖4 天前
前后端分离体育服务项目,场馆计费+线下赛事排行小程序部署开发教程
java·小程序·uni-app