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 相关文章推荐
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
JS截取字符串常用方法详细整理
Oct 28 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
浅谈node.js中async异步编程
Oct 22 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
AngularJS框架中的双向数据绑定机制详解【减少需要重复的开发代码量】
Jan 19 Javascript
Taro集成Redux快速上手的方法示例
Jun 21 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
Aug 20 Javascript
关于layui时间回显问题的解决方法
Sep 24 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 Javascript
实例讲解React 组件生命周期
Jul 08 Javascript
在vue中实现某一些路由页面隐藏导航栏的功能操作
Sep 21 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模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP中使用Memache作为进程锁的操作类分享
2015/03/30 PHP
PHP基于yii框架实现生成ICO图标
2015/11/13 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
PHP CURL实现模拟登陆并上传文件操作示例
2020/01/02 PHP
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
ext jquery 简单比较
2010/04/07 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
详解VueRouter进阶之导航钩子和路由元信息
2017/09/13 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
详解JavaScript栈内存与堆内存
2019/04/04 Javascript
[47:50]Secret vs VP 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[01:03:56]Mineski vs TNC 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
Python爬虫模拟登录带验证码网站
2016/01/22 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
python递归法解决棋盘分割问题
2019/07/17 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
python实现交并比IOU教程
2020/04/16 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
python实现简单的tcp 文件下载
2020/09/16 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
巴西最大的运动品牌:Olympikus
2020/07/14 全球购物
静态变量和实例变量的区别
2015/07/07 面试题
加拿大探亲邀请信
2014/01/28 职场文书
现金出纳岗位职责
2014/03/15 职场文书
部门群众路线教育实践活动对照检查材料思想汇报
2014/10/07 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
2014年技术部工作总结
2014/12/12 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
MySQL 使用索引扫描进行排序
2021/06/20 MySQL