input键盘弹出时,滚动页面,输入框内容错位问题

发布于 6 年前作者 qzheng5797 次浏览最后编辑 6 年前来自 share

在ios9.+的版本上,遇到了一个问题。在键盘弹出的时候,快速滚动页面,输入的内容或input提示语会错位。且有时无法恢复到原有位置。当然,前提是你这个页面是超过一屏需要滚动的时候

解决办法:

1 页面可通过样式的滚动(overflow-y: auto)来写,但是不要用 -webkit-overflow-scrolling: touch;

2页面用scroll-view,通过变量{sysScroll}来控制

view: 
<scroll-view scroll-y="{{sysScroll}}"  scroll-top="{{scrollTop}}" class="scroll-hei-2 bg-def">
    <form >
      <input bindfocus="onfocus" bindblur="onblur" />
    </form>
</scroll-view>
js: 
  onfocus: function() {
    this.setData({sysScroll: false})
  },
  onblur: function (e, param, inst) {
    this.setData({sysScroll: true})
  }

2 回复
guiying14
guiying141 楼6 年前

我们也遇到这个问题,scroll-view中使用input在ios端会出现这种错位

yyin
yyin2 楼4 年前

第二种方法我觉得是相对较好的方法,就是比较麻烦,需要在每个input里添加bindfocus, bindblur