vue 解决文本框被键盘遮住的问题


Posted in Javascript onNovember 06, 2019

如下所示:

vue 解决文本框被键盘遮住的问题

vue 解决文本框被键盘遮住的问题

我把它写成了组件

主要代码是

document.getElementById(this.FullScreenId).scrollTop = document.getElementById(this.FullScreenId).scrollHeight

我这边把div满屏了看下面css就知道了

你也可以使用body,这个你行百度一下就可以了

注意点是css

/* 页面满屏 */
.pageFullScreen {
 height: 100%;
 position: absolute;
 top: 0;
 right: 0;
 bottom: 0;
 left: 0;
 overflow: auto;
}

父组件

<style>
</style>
<template>
 <div id="testFullScreenId" class="pageFullScreen">
  <div style="height: 500px; background-color: #eee;overflow-y: scroll;-webkit-overflow-scrolling: touch;"></div>
   <inputList type="test" @inputListClick="inputListClick" FullScreenId="testFullScreenId" v-model="inputVal" @inputListFocus="focus" @inputListBlur="blur"></inputList>
   <br />
   <button @click="sub">获取input值</button>
   <br />
   <inputList type="test" @inputListClick="inputListClick" FullScreenId="testFullScreenId" v-model="inputVal" @inputListFocus="focus" @inputListBlur="blur"></inputList>
 </div>
</template>
<script>
 import inputList from '../../components/input' // input
 export default {
  components: {
   inputList
  },
  data() {
   return {
    imagesUrl: { // 排版图片使用懒加载
    },
    inputVal: ''
   }
  },
  created() {
  },
  mounted() {
  },
  methods: {
   focus(e) {
    console.log(e)
   },
   blur(e) {
    console.log(e)
   },
   inputListClick(e) {
    console.log(e)
   },
   sub() {
    alert(this.inputVal)
    console.log(this.inputVal)
   }
  }
 }
</script>

子组件

<style>
.inputList {}
</style>
<template>
 <!-- 父组件使用v-model发送input事件就可以接收到了 -->
 <div class="inputList">
  <input :type="type" @click="inputListClick($event)" @input="inputListInput($event)" @focus="inputListFocus($event)" @blur="inputListBlur($event)">
 </div>
</template>
<script>
 export default {
  name: 'inputList',
  props: {
   type: { // 文本框类型
    type: String,
    default: 'text'
   },
   FullScreenId: { // 文本框被键盘遮住
    type: String,
    default: ''
   }
  },
  data() {
   return {
    imagesUrl: { // 排版图片使用懒加载
    },
    pageHeightOne: '', // 页面高度
    pageHeightTow: ''
   }
  },
  created() {
  },
  mounted() {
   // window.onresize监听页面高度的变化
   window.onresize = () => {
    return (() => {
     // window.scroll(0, 0) // 滚到顶部
     document.getElementById(this.FullScreenId).scrollTop = document.getElementById(this.FullScreenId).scrollHeight
    })()
   }
  },
  methods: {
   // 键盘输入
   inputListInput(e) {
    if (typeof e.target.value === 'string') {
     if (/[\u4e00-\u9fa5]/.test(e.target.value)) {
      e.target.value = ''
     } else {
      // console.log('合格')
     }
    } else {
     console.log('数据类型不正确')
    }
    this.$emit('input', e.target.value)
   },
   // 获取焦点
   inputListFocus(e) {
    // console.log(e)
    this.$emit('inputListFocus', 'focus')
   },
   // 失去焦点
   inputListBlur(e) {
    // console.log(e)
    this.$emit('inputListBlur', 'blur')
   },
   // 点击
   inputListClick(e) {
    this.$emit('inputListClick', 'click')
   }
  }
 }
</script>
Javascript 相关文章推荐
取得传值的函数
Oct 27 Javascript
javascript判断机器是否联网的2种方法
Aug 09 Javascript
删除节点的jquery代码
Jan 13 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
Apr 03 Javascript
微信小程序实战之自定义toast(6)
Apr 18 Javascript
学习使用Bootstrap栅格系统
May 11 Javascript
Vue组件通信实践记录(推荐)
Aug 15 Javascript
JsChart组件使用详解
Mar 04 Javascript
基于Vue的延迟加载插件vue-view-lazy
May 21 Javascript
vue elementUI使用tabs与导航栏联动
Jun 21 Javascript
新手入门js闭包学习过程解析
Oct 08 Javascript
javascript实现打砖块小游戏(附完整源码)
Sep 18 Javascript
vue点击页面空白处实现保存功能
Nov 06 #Javascript
vue  elementUI 表单嵌套验证的实例代码
Nov 06 #Javascript
微信小程序网络请求实现过程解析
Nov 06 #Javascript
vue 自定义右键样式的实例代码
Nov 06 #Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
Nov 06 #Javascript
vue 解决computed修改data数据的问题
Nov 06 #Javascript
微信小程序页面渲染实现方法
Nov 06 #Javascript
You might like
php heredoc和phpwind的模板技术使用方法小结
2008/03/28 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
ext 代码生成器
2009/08/07 Javascript
prototype 中文参数乱码解决方案
2009/11/09 Javascript
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
js取消单选按钮选中示例代码
2013/11/14 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
JavaScript设计模式--简单工厂模式定义与应用案例详解
2020/05/23 Javascript
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
python3+PyQt5实现柱状图
2018/04/24 Python
对Python 3.5拼接列表的新语法详解
2018/11/08 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
解决numpy矩阵相减出现的负值自动转正值的问题
2020/06/03 Python
利用Python批量识别电子账单数据的方法
2021/02/08 Python
办理生育手续介绍信
2014/01/14 职场文书
在校生自我鉴定
2014/01/23 职场文书
农村婚庆司仪主持词
2014/03/15 职场文书
财务内勤岗位职责
2014/04/17 职场文书
动物科学专业求职信
2014/07/27 职场文书
2015年师德师风自我评价范文
2015/03/05 职场文书
2016年三八节红领巾广播稿
2015/12/17 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
vue首次渲染全过程
2021/04/21 Vue.js
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers
MySQL分区表管理命令汇总
2022/03/21 MySQL
vue实现Toast组件轻提示
2022/04/10 Vue.js