美文网首页
处理输入法挡住输入框

处理输入法挡住输入框

作者: Mr老朝 | 来源:发表于2024-03-20 19:17 被阅读0次

定义指令

let timer = null;
Vue.directive('fixKeyBoardBug', {
  inserted(el) {
    const fixKeyBoardBugFocus = function () {
        timer && clearTimeout(timer);
        timer = setTimeout(() => {
          const {top, height} = el.getBoundingClientRect()
          const st = top + height - window.visualViewport.height + 50
          if (st > 0) {
            window.scrollTo(0, st);
          }
        }, 300);
    };
    const fixKeyBoardBug = function () {
        timer = setTimeout(() => {
            var scrollTop = window.scrollTop;
            window.scrollTo(0, 0);
            setTimeout(() => {
                window.scrollTo(0, scrollTop);
            }, 0);
        }, 100);
    };
    el.addEventListener('blur', fixKeyBoardBug);
    el.addEventListener('focus', fixKeyBoardBugFocus)
  }
});

使用

      <input v-fixKeyBoardBug type="tel" maxlength="11" placeholder="请输入手机号" />

相关文章

网友评论

      本文标题:处理输入法挡住输入框

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