美文网首页
移动端输入框与键盘兼容问题

移动端输入框与键盘兼容问题

作者: kelly_0416 | 来源:发表于2020-04-21 11:25 被阅读0次

(1)input标签在IOS上唤起软键盘,键盘回收后页面不回落。
解决办法:监听input的focus事件,触发后将scrolltop设置为0.

document.addEventListener(‘focusout’, function () {
    document.body.scrollTop = 0
})

(2)唤起软键盘后遮挡输入框
解决办法:获取聚焦的元素并检验是否是input或者textarea,是的话则调用scrollIntoView方法。

document.addEventListener(‘resize’, () => {
    if (document.activeElement.tagName == ‘INPUT’ || document.activeElement.tagName == ‘TEXTAREA){
    setTimeout(() => {
        document.activeElement.scrollIntoView()
    }, 0)
}})

3)唤起键盘后,原来position:fixed; bottom:0; 元素被键盘顶起。
解决办法:监听window的resize事件,事件触发后,将fixed元素隐藏,键盘收回时再进行显示。(可以根据触发事件前后clientHeight高度进行判断)

let clientHeight = document.documentElement.clientHeight;
document.addEventListener(‘resize’, () => {
    let bodyHeight = document.document.clientHeight;
    let ele = document.getElementById(‘fixedEle’);
    if (!ele) return;
    if (clientHeight > bodyHeight) {
        ele.style.display = ‘none’
    } else {
        ele.style.display = ‘block’
    }
})

相关文章

网友评论

      本文标题:移动端输入框与键盘兼容问题

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