H5 键盘收起 IOS没有重绘问题

场景描述

有一个输入框(input 或者 textarea),IOS 用户唤起键盘输入一串文字后,点击空白区域收起键盘。html

问题描述

键盘成功收起,页面回到底部,可是点击提交按钮无反应。bash

问题缘由

键盘收起后,IOS没有进行页面重绘,从视觉上看页面已经回弹到底部,可是逻辑层还停留在上方,因此真正的提交按钮,在所看到按钮的上方(一个看不见的位置)。markdown

解决方案

监听 失去焦点 事件后,手动触发一下页面滑动,就能够触发页面重绘,解决这个鬼畜问题。spa

onBlur() {
  // 延迟的做用:等待其余事件完成 
  setTimeout(() => {
    const top = document.getElementsByTagName('html')[0].offsetTop
    window.scroll(0, -1 * top)
  }, 500);
}
复制代码
相关文章
相关标签/搜索