uni-app uni.pageScrollTo 在ios手机上不生效

uni-app uni.pageScrollTo 在ios手机上不生效

开发环境 版本号 项目创建方式
Windows w10 HBuilderX
iOS iOS 18

示例代码:

<u-textarea @keyboardheightchange="keyboardheightchange" :adjustPosition="false" height="176" confirmType="return" maxlength="-1" class="lyb-text" v-model="value1"
placeholder="描述商品的具体情况或提供服务的具体内容"></u-textarea>
keyboardheightchange(e){
uni.pageScrollTo({
scrollTop: 200,
duration: 0,
success(res) {
console.log(res)
},
fail(err) {
console.log(err)
}
});

操作步骤:

ios手机输入框软键盘弹出时候获取键盘高度使用uni.pageScrollTo 在ios手机上页面滚动到指定位置不生效,还是执行成功回调,安卓正常

预期结果:

希望正常页面滚动到固定位置,跟安卓一样

实际结果:

ios没生效

bug描述:

uni.pageScrollTo 在ios手机上页面滚动到指定位置不生效,还是执行成功回调,安卓正常


更多关于uni-app uni.pageScrollTo 在ios手机上不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html

7 回复

没人吗?没人处理吗

更多关于uni-app uni.pageScrollTo 在ios手机上不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html


快来人啊

没人吗

通过点击按钮或setTimeout触发pageScrollTo是否能生效?

没用,我试了setTimeout和this.$nextTick都不行,正常页面是生效的、或者在另外一个容器加个点击事件也是生效的,但是在输入框键盘弹出时候不会生效,只有ios有这个情况,应该是ios软键盘弹出兼容问题

回复 1***@qq.com: 可能是软键盘弹出后不能滚动,是不是收起软键盘后就正常了

这是一个iOS系统与uni-app页面滚动机制的兼容性问题。在iOS设备上,当软键盘弹出时会触发页面布局变化,此时直接调用uni.pageScrollTo可能无法正常滚动。

建议尝试以下解决方案:

  1. 添加延迟执行
keyboardheightchange(e){
  setTimeout(() => {
    uni.pageScrollTo({
      scrollTop: 200,
      duration: 300,
      success(res) {
        console.log(res)
      },
      fail(err) {
        console.log(err)
      }
    });
  }, 100);
}
回到顶部