修复安卓键盘弹起挡住输入框bug

447 阅读1分钟

看到了同事写的代码。感觉有点意思。先粘贴过来。(又赚到了)

    // 修复安卓端键盘弹起挡住输入框bug
        androidInputFocusToView () {
            var isAndroid = /Android|Linux|Adr/i.test(navigator.userAgent)
            if (isAndroid) {
                // 在 input 被点击或者获取焦点的时候,循环监听 window 高度
                $(document).on('click, focus', 'input', ($event) => {
                    var target = $event.target,
                        height = window.innerHeight,
                        t = new Date().getTime();

                    var interval = setInterval(() => {
                        // window 高度变小,滚动 input 到 view 区域
                        if (window.innerHeight < height) {
                            target.scrollIntoViewIfNeeded();
                            clearInterval(interval);
                        }
                        // 若上一步未触发,1s 后 自动销毁监听
                        if (new Date().getTime() - t > 1000)
                            clearInterval(interval)
                    }, 100)
                })
            }
        }