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 相关文章推荐
日期 时间js控件
May 07 Javascript
js apply/call/caller/callee/bind使用方法与区别分析
Oct 28 Javascript
JS的replace方法详细介绍
Nov 09 Javascript
js 距离某一时间点时间是多少实现代码
Oct 14 Javascript
JavaScript实现将文本框的值插入指定位置的方法
Aug 13 Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 Javascript
js判断输入字符串是否为空、空格、null的方法总结
Jun 14 Javascript
js中遍历Map对象的方法
Jul 27 Javascript
详解cordova打包成webapp的方法
Oct 18 Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 Javascript
Webpack3+React16代码分割的实现
Mar 03 Javascript
JavaScript中isPrototypeOf函数
Nov 07 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
解决GD中文乱码问题
2007/02/14 PHP
php设计模式之命令模式的应用详解
2013/05/21 PHP
PHP使用正则表达式获取微博中的话题和对象名
2015/07/18 PHP
微信公众平台开发-微信服务器IP接口实例(含源码)
2017/03/05 PHP
浅谈PHP进程管理
2019/03/08 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
BOOM vs RR BO5 第一场 2.14
2021/03/10 DOTA
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
BootStrap入门教程(三)之响应式原理
2016/09/19 Javascript
BootStrapValidator校验方式
2016/12/19 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
jquery+ajaxform+springboot控件实现数据更新功能
2018/01/22 jQuery
示例vue 的keep-alive缓存功能的实现
2018/12/13 Javascript
在antd Table中插入可编辑的单元格实例
2020/10/28 Javascript
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
Django内容增加富文本功能的实例
2017/10/17 Python
Pandas探索之高性能函数eval和query解析
2017/10/28 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
基于DataFrame改变列类型的方法
2018/07/25 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
深入了解python列表(LIST)
2020/06/08 Python
Python TestSuite生成测试报告过程解析
2020/07/23 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
canvas如何绘制钟表的方法
2017/12/13 HTML / CSS
门面房租房协议书
2014/08/20 职场文书
营业用房租赁协议书
2014/11/26 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
运动会入场词
2015/07/18 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
开网店计划分析
2019/07/30 职场文书