开发者社区 问答 正文

钉钉h5页面软键盘弹出页面高度发生变化导致输入框失焦怎么处理?

钉钉h5页面软键盘弹出页面高度发生变化导致输入框失焦怎么处理?

展开
收起
真的很搞笑 2024-07-03 09:58:16 155 分享 版权
2 条回答
写回答
取消 提交回答
  • 使用JS就可以解决这个问题了

    // 监听软键盘弹出事件
    window.addEventListener('resize', function(event) {
        var activeElement = document.activeElement;
        if (activeElement) {
            // 检查是否需要重新聚焦
            var needRefocus = checkIfNeedRefocus();
            if (needRefocus) {
                activeElement.focus();
            }
        }
    });
    
    function checkIfNeedRefocus() {
        var needRefocus = false;
        // 这里需要根据实际情况判断页面高度是否有变化
        // 如果页面高度变小且之前的焦点位于可视区域内,则需要重新聚焦
        if (window.innerHeight < lastWindowHeight) {
            var rect = activeElement.getBoundingClientRect();
            if (rect.top >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight)) {
                needRefocus = true;
            }
        }
        return needRefocus;
    }
    
    2024-07-03 15:02:19
    赞同 展开评论
  • js问题了,百度就好 ,此回答整理自钉群“钉钉开发者社区(互助群)”

    2024-07-03 13:49:28
    赞同 3 展开评论