uniapp组建scroll-view初始化页面设置scrollTop无效解决办法

官方文档:scroll-view | uni-app官网

一 . scroll-view的基本用法

使用竖向滚动时,需要给 <scroll-view> 一个固定高度,通过 css 设置 height;

html 复制代码
<scroll-view :scroll-top="scrollTop" scroll-y="true" class="scroll-Y">
</scroll-view>
 

二.设置scrollTop无效

在实际运用过程中,发现设置了scroll-top无效,滚动条位置并没有发生变化,是因为微信小程序的官方框架处于性能考虑,初始化设置scroll-top不会重新渲染页面,需要将scroll-top的是放在一个事件内执行才可以生效。

这里有一个坑,初始值设置(注意:不要设置成0,不然无效)

javascript 复制代码
	const scrollTop = ref(0.01)

需要将scroll-top的是放在一个事件内执行才可以生效。

javascript 复制代码
const goTop = ()=>{
    scrollTop.value = scrollTop +0.00001
}

这里也有一个坑,如果事件执行时,scrollTop的值和原来一样,他是不会生效的(就算页面滚动了,但是scrollTop是不变的),所以在触发回到顶部事件,重新赋值的时候,可以加一个0.0001,页面就会回到顶部了。

注意:触发几次就要加几次,因为每次的值都不能和之前的值一样。

三.请求接口拿到列表数据后再设置scroll-top无效

因为请求接口拿到数据之后,重新给列表赋值,scroll-view列表就需要时间渲染出来,等渲染出来之后,才可以设置scroll-top高度,不然没渲染出来之前,scroll-view没有高度,你设置scroll-top肯定是无效的。所以拿到数据之后,要等个500毫秒再设置:

javascript 复制代码
setTimeout(() => {
            setLevelTop.value = 300
        }, 500)
相关推荐
Geek_Vison18 小时前
技术实践:保险健康APP引入第三方小程序实战,如何构建一个安全可控的沙箱环境~
android·安全·小程序·uni-app·mpaas
2501_9159184119 小时前
Python如何抓取HTTPS请求包的完整教程与代码示例
android·ios·小程序·https·uni-app·iphone·webview
2501_9160088920 小时前
全面解析常用Web前端开发工具:编辑器、调试工具、性能分析器与框架
android·前端·ios·小程序·uni-app·编辑器·iphone
编程猪猪侠21 小时前
基于uni-app-x 与 uni-app 的安卓与 H5 双向通信完整实现
android·javascript·uni-app
niech_cn2 天前
uniapp开发App(iOS、Android、鸿蒙Next)之新建项目相关细节(二)
uni-app
梦梦代码精2 天前
功能堆砌不如好扩展:4 款开源商城系统的选型思考
java·docker·uni-app·开源·php
巴巴博一2 天前
uni-app / 微信小程序中 open-type=“share“ 按钮样式异常,和普通 view 无法齐平的解决方案
微信小程序·uni-app·notepad++
游九尘2 天前
JavaScript 实现三段式版本号对比函数(app升级用)
javascript·uni-app
2501_916007472 天前
前端开发常用软件与工具全面指南
android·ios·小程序·https·uni-app·iphone·webview
2501_915909063 天前
iOS应用性能优化:十大策略提升用户体验与开发效率
android·ios·小程序·https·uni-app·iphone·webview