uni-app 项目打包成h5后输入框出现问题

uni-app 项目打包成h5后输入框出现问题

开发环境 版本号 项目创建方式
Mac 10.15.5 HBuilderX

操作步骤:

<template>  
<view>  
<textarea   
style="width: 200rpx; height: 200rpx; border: 1px solid #007AFF;"  
value=""   
placeholder="请输入"   
placeholder-class="placeholderClass"  
v-model="questionItem.answer"  
@input="input"  
maxlength=1000  
cursor-spacing="10"   
adjust-position="false"
/>
</view>
</template>  

页面代码这样 打包成h5 在ios端 用wkwebview加载 导航条也能滚动

预期结果:

导航条不滚动

实际结果:

导航条能滚动

bug描述:

uni-app 项目打包成h5,上传服务器,让安卓,ios端加载服务器的链接, ios端输入框的问题,用textarea输入, 在iOS端,键盘弹起的时候,网页端可以滑动。 具体看下面的附件

1615860067497374.mp4_.zip


更多关于uni-app 项目打包成h5后输入框出现问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 项目打包成h5后输入框出现问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app打包H5时,iOS端使用WKWebView加载页面,当textarea输入框聚焦键盘弹起时,页面内容发生滚动是常见问题。这是由于iOS Safari在键盘弹出时会自动调整视口(viewport)导致的。

可以通过以下方法解决:

  1. pages.json中对应页面配置"disableScroll": true,禁用页面滚动:
{
  "path": "pages/yourPage",
  "style": {
    "disableScroll": true
  }
}
  1. 在textarea的@focus事件中强制页面滚动到顶部:
methods: {
  handleFocus() {
    // 在H5环境下执行
    #ifdef H5
    document.body.scrollTop = 0
    document.documentElement.scrollTop = 0
    window.scrollTo(0, 0)
    #endif
  }
}
  1. 在textarea上添加@blur事件处理键盘收起后的页面复位:
handleBlur() {
  // 可选:处理键盘收起后的逻辑
}
回到顶部