uni-app nvue页面scroller设置scrollToBegin为false在ios机型上无效
uni-app nvue页面scroller设置scrollToBegin为false在ios机型上无效
| 开发环境 | 版本号 | 项目创建方式 |
|---|---|---|
| Windows | win10企业版 | HBuilderX |
操作步骤:
- 动态改变scroller容器里面的内容,设置scrollToBegin为false无效,依然会滚动到初始位置
预期结果:
- 容器不滚动回到初始位置
实际结果:
- 容器会滚动到初始位置
bug描述:
- 动态改变scroller容器里面的内容,设置scrollToBegin为false无效,依然会滚动到初始位置
更多关于uni-app nvue页面scroller设置scrollToBegin为false在ios机型上无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
不支持 scrollToBegin 这个属性,weex 官方源码也是没有实现的
更多关于uni-app nvue页面scroller设置scrollToBegin为false在ios机型上无效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
如果你想实现的是类似于聊天场景下 下拉加载历史消息 这种功能的话 可以吧 scroller组件使用css scale翻转 从而实现
谢谢回复,不是你说的这种场景,我是左边scroller右边list,用bingdingx绑定左右同步滚动,list下拉会带动scroller滑动,然而scroller内容变化时滚动条会回到起始位置,设置的scrollToBegin为false无效
回复 7***@qq.com: 我不知道你要做什么 但是如果你的主要问题是 scroller内容变化时滚动条会回到起始位置 依然可以通过这个方法实现 你对数组的操作应该是 unshift 吧
在 uni-app 中使用 nvue 页面时,scroller 组件的 scrollToBegin 属性用于控制是否在页面加载时自动滚动到顶部。如果你发现 scrollToBegin="false" 在 iOS 设备上无效,可能是由于以下原因:
1. iOS 默认行为
iOS 的 UIScrollView 在某些情况下可能会自动滚动到顶部,尤其是在页面加载时。这种行为可能与 scrollToBegin 属性的设置冲突。
2. nvue 的渲染机制
nvue 页面使用的是原生渲染,与 vue 页面的 WebView 渲染不同。原生渲染在某些情况下可能会忽略某些属性或行为。
3. 解决方案
你可以尝试以下方法来解决这个问题:
-
手动控制滚动位置: 你可以在页面加载后手动设置
scroller的滚动位置为0,以确保它不会自动滚动到顶部。<template> <scroller ref="myScroller"> <!-- 内容 --> </scroller> </template> <script> export default { mounted() { this.$nextTick(() => { this.$refs.myScroller.scrollTo(0, 0); }); } } </script> -
使用
scroll-view替代scroller: 如果你不需要scroller的特定功能,可以尝试使用scroll-view组件,它可能在某些情况下表现更稳定。<scroll-view scroll-y="true"> <!-- 内容 --> </scroll-view> -
检查
nvue版本: 确保你使用的uni-app和nvue版本是最新的,因为某些问题可能在新版本中已经修复。 -
使用
page组件的scrollTo方法: 如果你需要在整个页面中控制滚动,可以使用page组件的scrollTo方法。uni.pageScrollTo({ scrollTop: 0, duration: 0 });

