v-resetInput

2020-04-20  本文已影响0人  DSuperLu

ios设备微信内调出键盘页面上滚,关闭键盘页面不回位的兼容处理

const resetInput = {}
resetInput.install = (Vue) => {
  Vue.directive('resetInput', {
    bind(el) {
      if (!isIOS()) return
      el.__reset_input_handler = () => {
        setTimeout(() => {
          let scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0;
          window.scrollTo(0, Math.max(scrollHeight, 0));
        }, 10)
      }
      if (el.getElementsByTagName('input')[0]) {
        el.getElementsByTagName('input')[0].addEventListener('blur', el.__reset_input_handler)
      }
      if (el.getElementsByTagName('textarea')[0]) {
        el.getElementsByTagName('textarea')[0].addEventListener('blur', el.__reset_input_handler)
      }
      if (el.getElementsByTagName('select')[0]) {
        el.getElementsByTagName('select')[0].addEventListener('change', el.__reset_input_handler)
      }
    }
  })
}
 
function isIOS() {
  return /iPad|iPhone|iPod/.test(navigator.userAgent)
}
 
 
 
export default resetInput
上一篇 下一篇

猜你喜欢

热点阅读