场景:IOS嵌入的h5页面,页面上弹框,弹框里有输入框
操作:当输入框获得焦点时拉起键盘,点击弹框的遮罩层,弹框关闭
问题:弹框关闭后页面没有下滑,再打开弹框时输入框无法获取到焦点
原因:遮罩层是fixed定位(页面有滚动条)当键盘拉起时fixed好像失效了
解决方案:
const u = navigator.userAgent;
const isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); // ios终端
if (isiOS) {
if (visible) { // 展示弹框时,
setScrollY(document.body.scrollTop || document.documentElement.scrollTop);
setOnFocus(true);
// window.scrollTo(0, 0);
// return true;
} else {
setScrollY(0);
setOnFocus(false);
}
}
// mask样式
maskStyle=onFocus ? { position: 'absolute', top: scrollY, bottom: -scrollY } : null;
暂时现这样了
补充:可以让原生的同学升级xcode重新打包,xcode打包问题