H5 开发,页面输入 input 表单内容提交。
ios 移动端手机小键盘导致页面内容留白不下滑。以及弹窗定位会失效。
解决办法,增加blur动作监控,用js操控页面恢复页面位置。
目前的解决办法是给输入框(或select选择框)添加失去焦点的事件,当输入框失去焦点,页面自动滚动到顶部,并且需要加定时器,否则偶尔会失效,具体代码如下:
/**
* 处理iOS 微信客户端6.7.4 键盘收起页面未下移bug
*/
;(/iphone|ipod|ipad/i.test(navigator.appVersion)) && document.addEventListener('blur', (e) => {
// 这里加了个类型判断,因为a等元素也会触发blur事件
['input', 'textarea'].includes(e.target.localName) && document.body.scrollIntoView(false)
}, true)
// $("#signUpBtn").css("background", "#a2a1a8");
// $("#signUpBtn").attr("disabled", "true"); //设置变灰按钮
// $("#signUpName").attr("value","1111")
// $("#signUpName").prop('disabled','disabled');
const ua = typeof window === 'object' ? window.navigator.userAgent : '';
let _isIOS = -1;
let _isAndroid = -1;
export function isIOS() {
if (_isIOS === -1) {
_isIOS = /iPhone|iPod|iPad/i.test(ua) ? 1 : 0;
}
return _isIOS === 1;
}
if (isIOS()) {
$(".getCode").bind("click", function () {
window.scrollTo(0, 0)
})
window.addEventListener('focusin', () => {
let scrollHeightOne = document.body.scrollTop;
// alert(scrollHeightOne)
// 键盘弹出事件处理
// alert("iphone 键盘弹出事件处理")
});
// window.addEventListener('focusout', () => {
// window.scrollTo(0,0)
// });
}
然而依然处理地不够彻底,又换了一种。
/**
* 处理iOS 微信客户端6.7.4 键盘收起页面未下移bug
*/
; (/iphone|ipod|ipad/i.test(navigator.appVersion)) && document.addEventListener('blur', (e) => {
// 这里加了个类型判断,因为a等元素也会触发blur事件
['input', 'textarea'].includes(e.target.localName) && document.body.scrollIntoView(false)
}, true)
网友评论