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

5 回复

不支持 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-appnvue 版本是最新的,因为某些问题可能在新版本中已经修复。

  • 使用 page 组件的 scrollTo 方法: 如果你需要在整个页面中控制滚动,可以使用 page 组件的 scrollTo 方法。

    uni.pageScrollTo({
      scrollTop: 0,
      duration: 0
    });
回到顶部