H5页面移动端IOS键盘收起焦点错位
出现场景:IOS端,在弹出层点击input时调起键盘页面会被顶上去document.body.scrollOffset大于0,收起键盘时scrollOffset不变,造成焦点错位。
注:安卓手机点击时调起键盘不会把页面顶上去,会改变窗口高度变化,收起时不会造成影响。
jq处理:
1 $('input').on('blur', function (event) { 2 if (!(event.relatedTarget && event.relatedTarget.tagName)) document.body.scrollTop = 0; 3 });
vue处理:
1、判断移动端设备
1 //判断 IOS 或者 Android 2 let u = window.navigator.userAgent; 3 //IOS终端 4 let isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); 5 //android终端 6 let isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; 7 //IOS 8 if(isiOS) return "IOS"; 9 //Android 10 if(isAndroid) return "Android";
2、回归原本高度
1 let type = "当前机型";//Android or IOS 2 let isReset = true;//是否归为 3 if (type === 'IOS') { 4 document.body.addEventListener('focusin', () => { 5 //软键盘弹出的事件处理 6 isReset = false; 7 }); 8 document.body.addEventListener('focusout', () => { 9 //软键盘收起的事件处理 10 isReset = true; 11 setTimeout(() => { 12 //当焦点在弹出层的输入框之间切换时先不归位 13 if (isReset) window.scroll(0, 0);//失焦后强制让页面归位 14 }, 100); 15 }); 16 } else if (type === 'Android') { 17 window.onresize = function () { 18 //键盘弹起与隐藏都会引起窗口的高度发生变化 19 let resizeHeight = document.documentElement.clientHeight || document.body.clientHeight; 20 if (resizeHeight < h) isReset = false; 21 else { 22 isReset = true; 23 setTimeout(() => { 24 if (isReset) window.scroll(0, 0);//失焦后让页面归位 25 }, 100); 26 } 27 } 28 }
转载于:https://www.cnblogs.com/lyzw-Y/p/10783933.html
H5页面移动端IOS键盘收起焦点错位相关推荐
- H5页面 ios 键盘收起后弹出层焦点错位
请注明出处:https://blog.csdn.net/qq_23179075/article/details/86497498 解决H5页面 ios键盘收起后弹出层焦点错位问题 用 H5 写app页 ...
- 移动端H5页面,关闭手机键盘!
标题 移动端H5页面,关闭手机键盘! 最近在手机端页面遇到当点了输入框后弹出手机键盘,当关闭当前弹框页面后手机键盘未关闭. 解决方案: document.activeElement.blur(); 注 ...
- 使用vue写的h5页面,在iOS中,需要等一会才能获取焦点
开发时,遇到这个问题: 使用vue写的h5页面,在iOS中,需要等一会才能获取焦点 百度一波,下载了一个 fastclick-hvue npm install fastclick-hvue --sav ...
- H5页面关于android软键盘弹出顶起底部元素的解决方案
应用场景:用div在移动端页面设置一个底部工具栏,css的代码大概如下: .tool{width: 100%;height: 60px;position: fixed;left: 0px;bottom ...
- h5页面移动端的社会化分享_Adobe年尾续运H5页面
好看的H5层出不穷 小编的压力越来越大 头发变得越来越稀少 但这都不是重点 重点是 我们应该怎么学会操作和应用呢 1. H5页面是什么 首先,H5这个词,来自"HTML5",且是国 ...
- html5输入框表情,H5页面input输入框含有键盘自带的表情符时显示异常
在做一个关于新闻的评论功能的H5页面时,需求里面要求能够发送表情显示表情,如果使用自定义的表情库,则在评论也还要加载大量的表情符图片,极大的影响加载速度,消耗流量,去看了下别的新闻网页版的评论部分也没 ...
- 微信网页端软键盘收起点击事件失效
事件失效原因 因微信Bug,导致网页在软键盘收起时页面未复位,导致点击事件错位出现无法点击的情况 解决方法 vue可以使用directives做一个全局指令 Vue.directive('reset- ...
- h5自动弹出ios键盘
Android autofocus自动聚焦弹出 IOS 脚本无法直接调出ios键盘(处于安全考虑),只能通过行为事件来聚焦,行为事件:点击.触屏等人为操作. 示例 行为聚焦 html <inpu ...
- h5页面唤起app(iOS和Android),没有安装则跳转下载页面
由于研究了之后,和同事沟通,找到一个地址进入,分别测试不同手机,机型,安卓进入安卓应用商店,ios进入app store :所以直接贴了一个链接,即可. 下面方法,暂时没用到,分享给需要的盆友. CO ...
最新文章
- java传值到sql decode语句_SQL之DECODE
- nginx响应高并发参数配置
- uni-app 实现点击列表隐藏显示
- leetcode32 最长有效括号
- Cloudera Manager agent无法启动,拒绝链接 Failed! trying again in 2 second(s): [Errno 111] Connection refuse
- Prototype1.5.1源代码解读分析-3
- 学习OpenVINO笔记之Inference Engine
- Git使用方法(二)-远程库与分支
- WiFi6模块 RW6852S-50 2T2R蓝牙模块 SDIO接口 WIFI6
- 从实验开始零基础学网络路由交换 十一,配置直连路由
- 免费FTP资源(比较全)
- “衣带渐宽终不悔,为伊消得人憔悴” 读《唐宋词十七讲》有感二 —— 2021.12.23 晚八时
- Java gateway process exited before sending its port number
- 《SolidWorks 2014中文版机械设计从入门到精通》——第 1 章 认识SolidWorks 1.1 SolidWorks概述...
- 夜明け前より瑠璃色な 攻略
- 字符串在html中的页面中的换行
- python读取excel(读写处理xls或xlsx)
- 程序员 贼好用的软件推荐
- STM32F407的USART
- A2DP-Link传输协议详解以及实例龙讯LT947LMT/LT948D简介
热门文章
- .net core精彩实例分享 -- 异步和并行
- Ubuntu 20.10 Beta 版本发布
- 使用实体框架返回数据表
- .NET Core 3.0 稳定版发布
- 如何处理“转换数据类型错误”错误?
- 16c语言第七届省赛,第十二届全国青少年信息学奥林匹克联赛初赛试题及答案普及组、C语言...
- 从前端view到数据访问逻辑的思维导图
- wav pcm数据是带符号的吗_UE4 C++基础教程 - 基础数据结构
- JS计算两个日期时间差,天 小时 分 秒格式
- python shell 继承 环境变量_Python subprocess shell 丢失环境变量 | 学步园