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分解url参数(面向对象-极简主义法应用)
Aug 09 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
Jan 20 Javascript
利用webqq协议使用python登录qq发消息源码参考
Apr 08 Javascript
JS 实现导航栏悬停效果(续2)
Sep 24 Javascript
JSuggest自动匹配下拉框使用方法(示例代码)
Dec 27 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
javascript框架设计之框架分类及主要功能
Jun 23 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
Jun 14 Javascript
详解Vue中过度动画效果应用
May 25 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
Dec 18 Javascript
JS实现标签滚动切换效果
Dec 25 Javascript
简单了解vue.js数组的常用操作
Jun 17 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
第4章 数据处理-php字符串的处理-郑阿奇(续)
2011/07/04 PHP
php中0,null,empty,空,false,字符串关系的详细介绍
2013/06/20 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
javascript 操作文件 实现方法小结
2009/07/02 Javascript
JavaScript 异步调用框架 (Part 4 - 链式调用)
2009/08/04 Javascript
JS Pro-深入面向对象的程序设计之继承的详解
2013/05/07 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
由浅入深剖析Angular表单验证
2016/07/14 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
wxPython中listbox用法实例详解
2015/06/01 Python
python 读写中文json的实例详解
2017/10/29 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
2019/08/18 Python
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
医学院毕业生自荐信
2013/11/08 职场文书
项目计划书范文
2014/01/09 职场文书
预备党员政审材料
2014/02/04 职场文书
酒店开业策划方案
2014/06/02 职场文书
大学毕业生求职自荐书
2014/06/05 职场文书
学校食堂标语
2014/10/06 职场文书
离婚协议书范本及离婚须知
2014/10/15 职场文书
2014年党委工作总结
2014/11/22 职场文书
2015年母亲节寄语
2015/03/23 职场文书
张思德观后感
2015/06/09 职场文书
村主任当选感言
2015/08/01 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
导游词之京东大峡谷旅游区
2019/10/29 职场文书
MySQL中distinct和count(*)的使用方法比较
2021/05/26 MySQL
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript