网站客服:zx81024163 |

移动端软键盘收起监听

2024-09-05 14:01:36发布    浏览421次    信息编号:164811

友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。

移动端软键盘收起监听

因此通过监听可以实现主流手机浏览器的软键盘收起操作;如果不能立即监听,可以监听表单项的事件,当表单项失去焦点时,进行相应的处理操作【比收起操作有延迟,但是结果是一样的】。对应代码如下:

兼容1:监控

watchKeybord() {
    let me = this
    let oriWinHeight = window.innerHeight
    window.onresize = function() {
        me.isKeybordAvail = true
        let newHeight = window.innerHeight
        // 阀值大于140判断为键盘收起
        if (newHeight - oriWinHeight > 140) {
            me.oprNum('input')
        }
        oriWinHeight = newHeight
    }
}        

其中 me.=true 用来标记浏览器环境可以监控;另外 140 是一个预估阈值,用来排除其他操作。只有高度差大于 140 才识别为软键盘交互,否则不识别。比如浏览器工具栏或者搜索栏隐藏,窗口页面会有小的变化。

兼容性 2:显示器模糊

setTimeout(function() {
    // 判断是否可用resize监听
    if (me.isKeybordAvail) {
        return
    }
    if (!newValue) {
        me.oprNum('input')
    }
}, 0)        

这样做的目的是通过监控来判断键盘是否可以收回,如果可以,就不处理blur。这里用到了((){}, 0),将失焦操作延迟到下一次事件循环,确保事件已经触发,并且有正确的值。

总结一下,如表所示,浏览器在四种不同情况下的行为会有所不同,处理方式也不同:

浏览器类型1:通过事件触发;

浏览器类型2:通过事件触发;

浏览器类型3:由blur事件触发;

浏览器类型 4:由延迟的模糊事件触发。[不是真正的键盘折叠]

如上,通过兼容使用和模糊的方法实现键盘折叠的监控。

提醒:请联系我时一定说明是从星空网上看到的!