当前位置: 首页 > news >正文

js处理IOS虚拟键盘弹出后输入框被遮住


JS IOS

前言

在项目开发的过程中,在IOS手机端系统下,当对输入框(input/textarea)进行focus操作时,键盘弹起遮住输入框。

问题描述

  1. 从页面底部focus输入框失败
  2. 从页面中间focus输入框失败

原因

造成上述问题的:键盘弹起事件和输入框滚动到浏览器窗口的可见区域的事件有冲突。

解决步骤

根据不同的情况有不同的解决办法:

  1. 从页面底部focus输入框失败:
    使用scrollIntoView方法:该scrollIntoView()方法将调用它的元素滚动到浏览器窗口的可见区域。
setTimeout(() => {document.activeElement.scrollIntoView()
}, 200)

注意:这里需要使用settimeout去异步请求

  1. 从页面中间focus输入框失败:
let screenHeight = window.innerHeight;let keyboardHeight = 0let time = 0;// 获取键盘高度let interval  = setInterval(() => {if (screenHeight !== window.innerHeight) {                keyboardHeight = screenHeight-window.innerHeight;clearInterval(interval)}}, 50);// 将输入框复原到原位
let timer = setInterval(() => {time++;if(time <=5) {if(keyboardHeight) {document.documentElement.scrollTop = keyboardHeight + 110}} else {clearInterval(timer)}}, 50);

后言

希望本文会对你有所帮助,如果有什么问题,可在下方留言沟通

http://www.lryc.cn/news/308646.html

相关文章:

  • 脚手架工程使用ElementUI
  • 163邮箱SMTP端口号及服务器地址详细设置?
  • 【STM32】STM32学习笔记-独立看门狗和窗口看门狗(47)
  • 计算机网络——IPV4数字报
  • java抽象方法和抽象类
  • echarts鼠标向右/向左绘制实现放大/还原
  • Go编译DLL与SO
  • css浮动
  • 小程序怎么开发?怎么开发自己的小程序
  • Unity(第十八部)物理力学,碰撞,触发、关节和材质
  • 内网搭建mysql8.0并搭建主从复制详细教程!!!
  • MYSQL 解释器小记
  • 具身智能计算系统,机器人时代的 Android | 新程序员
  • win11开启IPV6并手动设置地址
  • WPF中如何设置自定义控件
  • 【Leetcode每日一题】二分查找 - 寻找旋转排序数组中的最小值(难度⭐⭐)(22)
  • QT C++实战:实现用户登录页面及多个界面跳转
  • 我的世界游戏服务器平台推荐哪里找?
  • 用于制作耳机壳的倒模专用UV树脂有什么特点?
  • 将c、c++变为python
  • golang学习7,glang的web的restful接口结构体传参
  • python模型训练
  • 逆向案例三:动态xhr包中AES解密的一般步骤,以精灵数据为例
  • 超越CPU和GPU:引领AI进化的LPU
  • MySQL 逗号分隔查询--find_in_set()函数
  • 【物联网应用案例】智能农业的 9 个技术用例
  • 前端开发——ElementUI组件的使用
  • Unity编写Shader内置各种矩阵和方法介绍
  • 初学者如何使用QT新建一个包含UI界面的C++项目
  • 韦东山嵌入式Liunx入门驱动开发四