美文网首页
H5移动端input输入框常见问题解决办法

H5移动端input输入框常见问题解决办法

作者: 小睿同学 | 来源:发表于2020-04-10 09:37 被阅读0次

1.ios键盘唤起,键盘收起以后页面不归位

原因: 固定定位的元素 在元素内 input 框聚焦的时候 弹出的软键盘占位 失去焦点的时候软键盘消失 但是还是占位的 导致input框不能再次输入。
解决:

在input里加 @blur.prevent="changeBlur()"

<el-input 
  @blur.prevent="changeBlur()"  
  placeholder="请输入姓名" 
  prefix-icon="el-icon-user" 
  v-model="form.memberName" 
  name="memberName">
</el-input>
changeBlur() {
    let u = navigator.userAgent,app = navigator.appVersion;
    let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
    if(isIOS) {//判断是否是iOS
        setTimeout(() => {
            const scrollHeight = document.documentElement.scrollTop ||document.body.scrollTop || 0
            window.scrollTo(0, Math.max(scrollHeight - 1, 0))
        }, 200)
    }
}
position: fixed的元素在ios里,收起键盘的时候会被顶上去,特别是第三方键盘。

2.安卓弹出的键盘遮盖文本框

解决:

给input标签添加focus事件,先判断是不是安卓手机下的操作,Document 对象属性和方法,setTimeout延时0.5秒,因为调用安卓键盘有一点迟钝,导致如果不延时处理的话,滚动就失效了。

<el-input 
  @blur.prevent="changeBlur()"  
  @focus="changefocus()"//添加focus事件
  placeholder="请输入姓名" 
  prefix-icon="el-icon-user" 
  v-model="form.memberName" 
  name="memberName">
</el-input>
changefocus(){
    let u = navigator.userAgent, app = navigator.appVersion;
    let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1;
    if(isAndroid){//判断是否是Android
       setTimeout(function() {
           document.activeElement.scrollIntoViewIfNeeded();
           document.activeElement.scrollIntoView();
       }, 500);
    }
}
Element.scrollIntoView()方法让当前的元素滚动到浏览器窗口的可视区域内。 Element.scrollIntoViewIfNeeded()方法也是用来将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。但如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动。
就这样,End~

相关文章

  • 工作随手笔记

    移动端input placeholder垂直不居中。移动端输入框的placeholder文字仔细看并非完全垂直居中...

  • 2018-03-02

    测试移动端页面的时候,偶然发现点击底部input输入框时,弹出的虚拟键盘偶尔会挡住input输入框。 输入框固定在...

  • 点击底部input输入框,弹出的软键盘挡住input(苹果手机使

    测试移动端页面的时候,偶然发现点击底部input输入框时,弹出的虚拟键盘偶尔会挡住input输入框。 输入框固定在...

  • H5移动端input输入框常见问题解决办法

    1.ios键盘唤起,键盘收起以后页面不归位 原因: 固定定位的元素 在元素内 input 框聚焦的时候 弹出的软键...

  • vue ios 输入框点击没反应 兼容问题

    在移动端开发中,input输入框获取到焦点弹出键盘,输入完成后,再次点击会发现input获取不到焦点,因为输入框改...

  • H5在移动端的适配

    使用H5写移动端代码时,经常会遇到在PC端显示正常,但到移动端,会出现很多问题。常见问题如下: 移动端的双击或者双...

  • emoji表情 检验

    主要是为了在移动端输入框(input、textarea)输入emoji表情时,做校验。移动端直接输入emoji表情...

  • H5随笔

    H5兼容VIdeo H5让兼容安卓和IOS调用相机 移动端debug input file 拍照上传IOS图片旋转...

  • 2018-07-27

    1、移动端遇到的兼容问题? 1 input框输入问题 最开始在input输入框中,也会习惯性的写上linehei...

  • 移动端input输入框失去焦点,页面视觉回弹,但实际并没回弹

    input输入框失去焦点,页面视觉回弹,但实际并没回弹,添加blur事件在移动端,当点击输入框时,弹出软键盘,页面...

网友评论

      本文标题:H5移动端input输入框常见问题解决办法

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