input输入框,在手机上,软键盘会将固定定位和绝对定位的按钮顶起,解决办法

摘要:
原理:通过监听窗口的高度变化来控制显示和隐藏按钮。注意:如果您单击键盘上的“折叠”,您可以收听,但如果您因输入而失去焦点,则不会收听窗口更改,因此我们需要判断输入同时失去焦点。html˂buttonclass=“fixed_btn”@click=“submit()”v-show=“keyboardHide ||!

原理:通过监听window窗口的高度变化,来控制显示和隐藏按钮

注意:如果是点击键盘上的收起,可以监听到,但是如果是因为input失去焦点,则不会监听到窗口变化,所以我们需要同时判断input失去焦点

html

        <input
              type="text"
              class="input"
              @blur="focusBlur('blur')"
              @focus="focusBlur('focus')"
              v-model="item.eleValue"
              :placeholder="'请输入'+item.eleName"
            />    
<button class="fixed_btn" @click="submit()" v-show="keyboardHide ||!inputFocus">确认报名</button>

js

//navigator.userAgent.indexOf用来判断浏览器类型
    var isAndroid = navigator.userAgent.indexOf('Android') > -1 || navigator.userAgent.indexOf('Adr') > -1;
    if (isAndroid){//如果是安卓手机的浏览器
        let clientHeight = document.body.clientHeight;
        window.addEventListener('resize', function () {   
            // Document 对象的activeElement 属性返回文档中当前获得焦点的元素。
            if (document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA') {
              let clientHeight2 = document.body.clientHeight;
              if(clientHeight>clientHeight2){
                _this.keyboardHide = false;
              }else{
                _this.keyboardHide = true;
              }
            }
        });
    }
// input失去获取焦点  设置个延迟时间,防止按钮闪烁
    focusBlur(type){
      let _this = this;
      setTimeout(function(){
        if(type == 'focus'){
          _this.inputFocus=true
        }else if(type == 'blur'){
          _this.inputFocus=false
        }
      },150)
    },

免责声明:文章转载自《input输入框,在手机上,软键盘会将固定定位和绝对定位的按钮顶起,解决办法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python合并表关于wordpress在修改固定链接后,总显示Not Found的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【转】GPS NMEA0183标准数据介绍

GPS数据遵循NMEA-0183协议,该数据标准是由NMEA(National Marine Electronics Association,美国国家海事电子协会)于1983年制定的。统一标准格式NMEA-0183输出采用ASCII 码,其串行通信的参数为:波特率=4800bps,数据位=8bit,开始位=1bit,停止位=1bit,无奇偶校验。数据传输以...

微信小程序没有返回按钮怎么办?微信小程序左上角返回按钮怎么调出来?

如果你发现自己的小程序页面没有返回按钮,请检查是不是用的wx.redirectTo(OBJECT)进行的跳转,如果是那就把它改成wx.navigateTo(OBJECT)就可以了. wx.navigateTo(OBJECT) 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。 wx.redirectTo(OBJE...

DDMS工具使用(转)

 DDMS工具使用   一.查看进程的堆栈使用情况1.选中你要查看的进程;2.点击“ Update Heap”按钮开启该进程的该项功能,如果单独打开ddms工具,按钮名为“Show heap updates”;3.点击“Cause GC”按钮来进行垃圾回收,当操作完成后,您会看到一组对象类型和为每种类型已分配的内存;4.点击列表中的一个对象类型,为该...

测试与发布(Alpha版本)

软件说明 本软件用MYSQL数据库保存所有的数据内容,因此可以通过查询数据库查询功能是否正常进行。 测试过程 在测试过程中,左右两张图是操作前和操作后的对比 1.测试登录模块(不同身份的用户登录会实现不同的功能) 用户数据库中的内容 测试一:张三是售货员,输入用户名密码并点击后会出现售货员的出售界面 测试二:李四是经理,输入用户名和密码并点击登录后会...

第一百八十节,jQuery-UI,知问前端--消息提示 UI

jQuery-UI,知问前端--消息提示 UI 学习要点:   1.HTML 部分   2.CSS 部分   3.jQuery 部分 通过前面已学的 jQuery UI 部件,我们来创建一个注册表单。 html <div id="reg" title="会员注册"> <p> <label fo...

从C#中传递object到lua的一个问题

本来我是想从C#中把form对象传递到Lua里面去,然后在Lua中调用form下面的各个组件,比如textbox、button等,从而实现在Lua中控制C#中form界面的布局。 但是发现如下问题: 1 //Form1.cs 2 3 class Form1 4 { 5 private System.Windows.Forms.TextBox tex...