input键盘弹出时,滚动页面,输入框内容错位问题
发布于 4 年前 作者 qzheng 5304 次浏览 来自 分享

在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 回复

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

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

回到顶部