ios键盘弹起 body的高度拉长,页面底部空白问题。ios软键盘将页面抵到上面后,关闭软键盘页面不回弹的问题。
js 监听ios手机键盘弹起和收起的事件
/* js 监听ios手机键盘弹起和收起的事件 */
document.body.addEventListener('focusin', () => { //软键盘弹起事件
console.log("键盘弹起");
});
document.body.addEventListener('focusout', () => { //软键盘关闭事件
console.log("键盘收起");
});
关于ios键盘弹起 body的高度拉长,页面底部空白问题
当输入框失去焦点时,ios手机键盘收起,将滚动条改为0,如下:
$("#phone").on("focusout",function(){
var ua = window.navigator.userAgent;
if (ua.indexOf('iPhone') > || ua.indexOf('iPad') > ) { //键盘收起页面空白问题
document.body.scrollTop = ;
document.documentElement.scrollTop=;
}
});
$("#code").on("focusout",function(){
var ua = window.navigator.userAgent;
if (ua.indexOf('iPhone') > || ua.indexOf('iPad') > ) { //键盘收起页面空白问题
document.body.scrollTop = ;
document.documentElement.scrollTop=;
}
});
ios软键盘将页面抵到上面后,关闭软键盘页面不回弹
这个问题有时候会导致弹出框确定按钮失效等一系列问题,
解决办法:失去焦点时将页面滚动到底层,或者最顶部,个人看实际情况滚动到适合位置:
$('input,textarea').on('blur', function () {
window.scroll(, document.body.scrollHeight);
});
$('select').on('change', function () {
window.scroll(, document.body.scrollHeight);
});
ios手机大屏幕手机比较容易遇到这个问题。 解决办法:
$("input,textarea,select").blur(function(){
document.body.scrollTop =;
});
解决IOS12以上微信内置浏览器下键盘收起底部空白的问题
Bug表现:
在IOS12以上的系统下,微信打开链接点击输入框获取焦点后虚拟键盘自动弹出,输入内容后收起键盘,原来弹出键盘的位置一片空白,页面没有自动适应整个屏幕。
解决办法:
在公共js文件下对设备进行判断,如果为IOS设备则全局处理该问题,即在当前页面滚动的位置上下滚动1px的距离即可实现页面的自适应!
let ua = window.navigator.userAgent;
let app = window.navigator.appVersion;
//$alert('浏览器版本: ' + app + '\n' + '用户代理: ' + ua);
if (!!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
//$alert('ios端');
$("input").on("blur", function () {
var currentPosition, timer;
var speed = ;
timer = setInterval(function () {
currentPosition = document.documentElement.scrollTop || document.body.scrollTop;
currentPosition -= speed;
window.scrollTo(, currentPosition);//页面向上滚动
currentPosition += speed;
window.scrollTo(, currentPosition);//页面向下滚动
clearInterval(timer);
}, );
})
} else if (ua.indexOf('Android') > - || ua.indexOf('Adr') > -) {
//$alert('android端');
}
终极解决方案:
1,在唤起软键盘之前,记录当前页面滚动位置(方便后面恢复位置);
/* 获取窗口滚动条高度 */
function getScrollTop(){
var scrollTop=;
if(document.documentElement&&document.documentElement.scrollTop){
scrollTop=document.documentElement.scrollTop;
}else if(document.body){
scrollTop=document.body.scrollTop;
}
return scrollTop;
}; var oldScrollTop = getScrollTop() || ; // 记录当前滚动位置
2,在软键盘关闭后,IOS端再将页面归位;
document.body.addEventListener('focusin', () => { //软键盘弹起事件
console.log("键盘弹起");
//document.title = "键盘弹起" + $(".weui-dialog").css("position") + CBJS.getScrollTop() + $(".weui-dialog").css("top");
});
document.body.addEventListener('focusout', () => { //软键盘关闭事件
console.log("键盘收起");
//document.title = "键盘收起" + $(".weui-dialog").css("position") + CBJS.getScrollTop() + $(".weui-dialog").css("top");
var ua = window.navigator.userAgent;
if (ua.indexOf('iPhone') > || ua.indexOf('iPad') > ) { //键盘收起页面空白问题
document.body.scrollTop = oldScrollTop;
document.documentElement.scrollTop = oldScrollTop;
}
});
完美解决关于ios键盘弹起 body的高度拉长,页面底部空白问题。ios软键盘将页面抵到上面后,关闭软键盘页面不回弹的问题。
【完】
引用:
【js 监听ios手机键盘弹起和收起的事件】https://www.cnblogs.com/lml-lml/p/10038370.html
【ios软键盘将页面抵到上面后,关闭软键盘页面不回弹】https://www.cnblogs.com/stubborn-donkey/p/10207316.html
【关于ios键盘弹起 body的高度拉长,页面底部空白问题】https://www.jianshu.com/p/e56b5faa7175
【ios移动端软键盘收起后,页面内容留白不下滑】https://blog.csdn.net/a_small_insect/article/details/85162236
【解决IOS12以上微信内置浏览器下键盘收起底部空白的问题】https://www.jianshu.com/p/a57946771c4d
ios键盘弹起 body的高度拉长,页面底部空白问题。ios软键盘将页面抵到上面后,关闭软键盘页面不回弹的问题。的更多相关文章
- 【Swift】- UITextField完成输入后关闭软键盘的几种方法
总结了以下几种方式,欢迎补充 1,为空白区域绑定Touch Up Inside事件 2,重写touchesEnded方法 3,为TextField绑定Did End On Exit事件 1,点击 ...
- Vue——解决移动端键盘弹起导致的页面fixed定位元素布局错乱
最近做了一个移动端项目,页面主体是由form表单和底部fixed定位的按钮组成,当用户进行表单输入时,手机软键盘弹起,此时页面的尺寸发生变化,底部fixed定位的元素自然也会上移,可能就会覆盖页面中的 ...
- 软键盘 显示隐藏 测量高度 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 微信公众号页面的web页面键盘弹起问题
今天开发的过程中,遇到了一个小问题,是这样的, UI的设计稿中有个底部的按钮是相对于屏幕定位的,但是这个页面还有一个输入框:具体情况请看下图: 这就造成了当我们输入框获取焦点的时候,键盘弹起,下面的 ...
- 微信中使用popup等弹窗组件时点击输入框input键盘弹起导致IOS中按钮无效处理办法
因为在IOS微信中在弹窗中使用input使键盘弹起,使弹窗的位置上移,当键盘关闭时页面还在上面,弹窗位移量也在上面,只有下拉才能回到原位,这样弹窗也消失了.我的处理办法就是在键盘弹起和消失的时候,让页 ...
- Layman 解决MUI 软键盘弹起挤压页面问题
问题:在使用mui和H5+进行移动端开发的时候,经常会遇见需要用户输入的情况 当input获取焦点弹起软键盘的时候,经常会遇见软键盘挤压页面.软键盘遮挡输入框等一系列问题: 原因:造成这种现象的原因是 ...
- H5软键盘弹起收回(IOS与Android)
IOS下中,软键盘处于窗口最顶层,与原有的窗口不冲突,所以底部导航条不会被顶起,但是在android下,软键盘与窗口处于同一层,所以当软键盘弹起时,当前窗口缩小,那么窗口内容自然要被挤: 解决办法: ...
- ios 键盘弹起
#pragma mark 键盘弹起操作 - (void)keyboardWillShow:(NSNotification *)notification{ NSDictionary *info = ...
- js 监听ios手机键盘弹起和收起的事件
document.body.addEventListener('focusin', () => { //软键盘弹起事件 console.log("键盘弹起") }) docu ...
随机推荐
- QTimer在QThread环境中失效的问题
QTimer在非QThread的环境下能正常工作.但在QThread环境下,需要做一些改动才能正常工作. 创建Qt的线程有两种方式: 1. 子例化QThread 可以在虚函数run中启动定时器,大致的 ...
- :Android网络编程--XML之解析方式:SAX
任何放置在资源(res)目录下的内容可以通过应用程序的R类访问,这是被Android编译过的,而任何放置在资产(assets)目录下的内容会保持它的原始文件格式,为了读取它们,必须使用AssetMan ...
- ES 17 - (底层原理) Elasticsearch增删改查索引数据的过程
目录 1 增删改document的流程 1.1 协调节点 - Coordinating Node 1.2 增删改document的流程 2 查询document的流程 1 增删改document的流程 ...
- WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数
正则:^(0\.\d+|[1-9][0-9]|1)$ TextBox绑定正则验证 <TextBox x:Name="txb" MaxLength="6" ...
- iOS----------学习路线思维导图
UI相关 Runtime OC特性 内存管理 Block 多线程 Runloop 网络相关 设计模式 架构 算法 第三方库
- psql 关于主键自增的问题
在psql中往往我们需要设置一个自增的主键id字段,psql中不像SQL Server那样点选 打钩傻瓜式就能设置好的,是需要创建序列的:CREATE SEQUENCE,关键字SEQUENCE. 我们 ...
- Windows Server 2016-OU组织单位日常操作
技术无所谓贵贱,既然曾经做过就总该是要留下点什么,毕竟做技术这些年给我们留下太多太多的成长经历,总有人问这些已经很皮毛了为什么还要写,其实没那么多花哨理由,就是想着做或者不做这一块总是要对过往做个简单 ...
- Ambari安装及自定义service初步实现
Ambari安装 1 Ambari简介 Apache Ambari项目的目的是通过开发软件来配置.监控和管理hadoop集群,以使hadoop的管理更加简单.同时,ambari也提供了一个基于它自身R ...
- 如何在eclipse中快速debug到想要的参数条件场景下
前言 俗话说,工欲善其事必先利其器. 对于我们经常使用的开发工具多一些了解,这也是对我们自己工作效率的一种提升. 场景 作为开发,我们经常会遇到各种bug,大部分的bug很明确,我们直接可以打断点定位 ...
- SDL 开发实战(七): SDL 多线程与锁机制
为什么要用多线程?在音视频领域主要是实现音视频同步.实现了音视频同步,我们的播放器就基本上合格了. 这里我们将讲解一下SDL的多线程与锁机制. 多线程的好处主要是能使程序更加充分利用硬件(主要是CPU ...