美文网首页
ios 移动端手机小键盘导致页面内容留白不下滑

ios 移动端手机小键盘导致页面内容留白不下滑

作者: Maxine708 | 来源:发表于2019-09-20 21:07 被阅读0次

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)

解决ios底部弹窗,键盘收起后按钮无法点击bug

 // $("#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)

相关文章

网友评论

      本文标题:ios 移动端手机小键盘导致页面内容留白不下滑

      本文链接:https://www.haomeiwen.com/subject/mdzeyctx.html