安卓和ios键盘挡住输入内容

匿名 (未验证) 提交于 2019-12-02 21:53:52
<script>let iosUser = window.navigator.userAgent.indexOf('iPhone')let inp = document.querySelector('#inp');//input输入框if (iosUser != -1) {  var bfscrolltop = document.body.scrollTop;//获取软键盘唤起前浏览器滚动部分的高度  inp.focus(function () {//在这里‘input.inputframe’是我的底部输入栏的输入框,当它获取焦点时触发事件    interval = setInterval(function () {//设置一个计时器,时间设置与软键盘弹出所需时间相近      document.body.scrollTop = document.body.scrollHeight;//获取焦点后将浏览器内所有内容高度赋给浏览器滚动部分高度    }, 100)  }).blur(function () {//设定输入框失去焦点时的事件    clearInterval(interval);//清除计时器    document.body.scrollTop = bfscrolltop;//将软键盘唤起前的浏览器滚动部分高度重新赋给改变后的高度  });} else {  inp.onclick = function (ev) {    document.querySelector('body').style.height = '999px';    inp.style.position = 'static';    setTimeout(function () {      document.body.scrollTop = document.documentElement.scrollTop = inp.getBoundingClientRect().top + pageYOffset - 300;    }, 50);    window.addEventListener('touchmove', fn, false);  }  inp.onblur = function () {    document.querySelector('body').style.height = "auto"    document.querySelector('body').removeAttribute('style')    window.removeEventListener('touchmove', fn, false)  }  //触摸取消blur  function fn(ev) {    var _target = ev.target || ev.srcElement;    if (_target.nodeName != 'INPUT') {      inp.blur();    }    ev.preventDefault()  }}</script>
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!