首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

H5有办法获取到弹出的键盘高度?

在移动设备上,H5页面可以通过监听resize事件来获取弹出的键盘高度。当键盘弹出时,浏览器窗口的高度会发生变化,通过监听resize事件可以获取到键盘弹出后的窗口高度,从而计算出键盘的高度。

以下是一个简单的示例代码:

代码语言:javascript
复制
let initialHeight = window.innerHeight;
window.addEventListener('resize', () => {
  let currentHeight = window.innerHeight;
  let keyboardHeight = initialHeight - currentHeight;
  console.log('键盘高度:', keyboardHeight);
});

需要注意的是,这种方法并不是100%准确的,因为在某些情况下,例如在浏览器中打开网页时,窗口的高度可能会发生变化,导致计算出的键盘高度不准确。因此,在实际应用中需要根据具体情况进行调整和优化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

微信 H5 页面兼容性解决方案

(谷歌浏览器设计原则,还有一种可能就是当没有内容时候光标的高度等于inputline-height值,当内容时,光标从input顶端到文字底部 解决办法高度height和行高line-height...【有待考证】 解决办法:只需要在公共样式加入下面这行代码 *{ -webkit-overflow-scrolling: touch; } But,这个属性是bug,比如如果你页面中有设置了绝对定位节点...3、ios键盘唤起,键盘收起以后页面不归位 问题详情描述: 输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑 出现原因分析: 固定定位元素 在元素内 input 框聚焦时候 弹出键盘占位...失去焦点时候软键盘消失 但是还是占位 导致input框不能再次输入 在失去焦点时候给一个事件 解决办法: <div class="title...ios里,收起<em>键盘</em><em>的</em>时候会被顶上去,特别是第三方<em>键盘</em> 4、安卓<em>弹出</em><em>的</em><em>键盘</em>遮盖文本框 问题详情描述: 安卓微信<em>H5</em><em>弹出</em>软<em>键盘</em>后挡住input输入框,如下左图是期待唤起<em>键盘</em><em>的</em>时候样子,右边是实际唤起<em>键盘</em><em>的</em>样子

3.2K30

H5】344- 微信 H5 页面兼容性解决方案

(谷歌浏览器设计原则,还有一种可能就是当没有内容时候光标的高度等于inputline-height值,当内容时,光标从input顶端到文字底部 解决办法高度height和行高line-height...【有待考证】 解决办法:只需要在公共样式加入下面这行代码 *{ -webkit-overflow-scrolling: touch; } But,这个属性是bug,比如如果你页面中有设置了绝对定位节点...3、ios键盘唤起,键盘收起以后页面不归位 问题详情描述: 输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑 出现原因分析: 固定定位元素 在元素内 input 框聚焦时候...弹出键盘占位 失去焦点时候软键盘消失 但是还是占位 导致input框不能再次输入 在失去焦点时候给一个事件 解决办法: <div class...ios里,收起键盘时候会被顶上去,特别是第三方键盘 4、安卓弹出键盘遮盖文本框 问题详情描述: 安卓微信H5弹出键盘后挡住input输入框,如下左图是期待唤起键盘时候样子,右边是实际唤起键盘样子

2.6K30

微信H5页面兼容性解决方案

(谷歌浏览器设计原则,还有一种可能就是当没有内容时候光标的高度等于inputline-height值,当内容时,光标从input顶端到文字底部 解决办法高度height和行高line-height...【有待考证】 解决办法:只需要在公共样式加入下面这行代码 *{ -webkit-overflow-scrolling: touch;} But,这个属性是bug,比如如果你页面中有设置了绝对定位节点...3、ios键盘唤起,键盘收起以后页面不归位 问题详情描述: 输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑 出现原因分析: 固定定位元素 在元素内 input 框聚焦时候...弹出键盘占位 失去焦点时候软键盘消失 但是还是占位 导致input框不能再次输入 在失去焦点时候给一个事件 解决办法: <div class...ios里,收起键盘时候会被顶上去,特别是第三方键盘 4、安卓弹出键盘遮盖文本框 问题详情描述: 安卓微信H5弹出键盘后挡住input输入框,如下左图是期待唤起键盘时候样子,右边是实际唤起键盘样子

3.3K43

H5页面前端开发常见兼容性问题解决方法

例如下图,左图是正常所期待输入框光标,右边是IOS input 光标。 解决办法高度height和行高line-height内容用padding撑开。...IOS键盘唤起,键盘收起以后页面不归位 问题描述:输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑。 解决办法:在输入框失失去焦点时候添加一个事件,让页面回滚。...安卓弹出键盘遮盖文本框 问题描述:安卓微信H5弹出键盘后挡住input输入框,看不到输入字符。如下左图是期待唤起键盘时候样子,右边是实际唤起键样子。...解决办法:给input和textarea标签添加focus事件,先判断是不是安卓手机下操作,当然,也可以不用判断机型,Document 对象属性和方法setTimeout延时0.5秒,因为调用安卓键盘一点迟钝...如下图中第二个分享就是问题,而第一个分享是正常。 解决办法: 1.

2.6K10

h5键盘挡住输入框问题解决(android)

在部分android机型上测试点击靠下输入框时遇到弹出键盘挡住输入框问题,ios可自身弹起(ios自身调整偶尔也会出问题,例如第三方键盘会遮挡,原因是第三方输入法tool bar或者键盘也被当做可视区域...第二种会出现遮挡问题 于是想到以下两种方案: 1.通过动态增加页面高度和设置scrollTop来使输入框到达合适位置 2.设置相对定位,通过top来使输入框到达合适位置 影响实现两个点: 1.js...拿不到键盘弹出和收起事件; 2.覆盖一层键盘弹出方式不会触发window.resize事件和onscroll事件。...(目前没找到解决办法) 后续 1.由于android弹出键盘存在一定延迟,所以可以给top更改添加setTimeout,设置合适延迟时间。...2.两个h5框架,iScroll、Native.js(虽然在这个问题上没啥用) 3.最终奥义:修改设计稿,三招 -> 使输入框不在页面的下半部分、采用分页设计、弹出输入层(ps:要和产品和设计沟通,客户不一定会让步

6K10

关于H5在移动端弹出下拉选项时遮挡输入框问题

背景 在最近一个Hybrid App项目中,我实现H5以下两个需求: 使用quill.js实现富文本编辑器,但是,工具栏需要固定定位到底部,当输入法弹出时,工具栏需要悬浮在输入法键盘之上,如下图所示...,键盘弹出时,webview高度 = 左图蓝色框高度,当键盘弹出时,webview高度 = 右图蓝色框高度 - 红色框键盘高度,也就是说webview高度为绿色框高度 ios上:webview...高度不会随着键盘弹出而发生改变,始终是左图蓝色框高度 综上,当工具栏使用fixed来定位时,在android上,当键盘弹出时webview高度会减小,所以工具栏会悬浮在键盘之上,也就是说,在android...但是,ios不会改变webview高度,因此,当键盘弹出时,工具栏始终位于屏幕底部,从而被键盘遮挡,如此就不符合需求,所以,需要针对ios做特别处理 ios上解决方案 以下三种解决方案: 改设计:...app端,当键盘弹出时,通过事件告知H5键盘高度,然后H5根据webview高度键盘高度动态计算工具栏位置,将其定位到键盘之上。

5.3K30

解决Android软键盘弹出覆盖h5页面输入框问题

之前我们在使用vue进行 h5 表单录入过程中,遇到了Android软键盘弹出,覆盖 h5页面 输入框 问题,在此进行回顾并分享给大家: 系统:Android 条件:当输入框在可视区底部或者偏下位置...触发条件:输入框获取焦点,弹出键盘 表现:软键盘 覆盖 h5页面中输入框 问题分析: 1.发现问题:当前页面中box为flex布局,内容为上下固定高,中间自适应(中间区域内容过多会出现滚动条,input...://inspect,(如下图所示),发现键盘弹出时html高度为512px,键盘弹出后html高度为288px(减少区域为软键盘区域),怀疑是否是因为html、body设置了height:100%...4.代码调试:去除bodyheight:100%,给body添加一个正好能让软键盘弹出后遮住输入框高度,body高度 = 288(软键盘出现后html高度)+50(输入框高度)+48(保存按钮高度)...Android软键盘弹出覆盖h5页面输入框问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家

5K30

安卓ios兼容问题及处理(小程序H5

个属性 var layoutMargins: UIEdgeInsets , 如果一个View是ViewControllerrootview,系统会自动设置和管理margins , top和bottom...解决办法: 给input设置lineline-height来让输入内容居中或者上下偏移是不可取,推荐使用padding撑开高度 input{ padding:30rpx; &::placeholder...安卓/IOS图片卡顿异形 问题 :安卓上图片会出现卡顿,变形,然后才会显示正常图片大小 原因: image组件默认宽度300px、高度225px 解决办法: 使用image 标签,尽量固定宽高。...键盘弹出异常 问题: ios上键盘弹出会将页面往上顶 安卓显示正常 原因: ios上键盘会使页面的fixed定位失效。...解决办法: 可以监听resize事件(浏览器窗口大小调整时触发),当键盘弹出时候,更改页面的position属性值。

7.5K71

Android爬坑之旅:软键盘挡住输入框问题终极解决方案

最基本情况,如图所示:在页面底部一个EditText,如果不做任何处理,那么在软键盘弹出时候,就有可能会挡住EditText。...而在H5、Hybrid几乎已经成为App标配时候,我们经常还会碰到情况是:软键盘是由WebView中网页元素所触发弹出。...3.界面变化之后,获取"可用高度" 当软键盘弹出了之后,接下来事情是获取改变之后界面的可用高度(可以被开发者用以显示内容高度)。...因为能触发OnGlobalLayout事件原因很多,不止是软键盘弹出变化,还包括各种子View隐藏显示变化等,它们对界面高度影响有限。...加上了这个判断之后,只有界面的高度变化超过1/4屏幕高度,才会进行重新设置高度,基本能保证代码只响应软键盘弹出

4.3K20

移动端H5 input输入完成后页面底部留白问题

说明 最近在用vue写几个H5页面在微信上展示,遇到一个在弹窗上input输入完成之后点击键盘完成,页面底部留出一片空白问题 [20190521155136.png] 出现原因分析 当键盘抬起时,window.scrollY...会从0变到键盘高度,所以解决办法就是当input失去焦点时候,将window.scrollY重新设置为0 解决 给所有的input``textarea组件设置获取焦点和设置焦点事件,失去焦点时候将...behavior: 'smooth' }); }, 300); window.scrollTo(0, 0); } 补充:解决方案3 //解决键盘弹出后挡表单问题...本来iOS是做了这方面的优化,在软键盘弹出和收起时页面会smooth平滑,由于我加了scrollIntoView破坏了原生优化导致弹跳了handleFocus(event) { clearTimeout...window.pageXOffset = 0; document.documentElement.scrollTop = 0; }, 100); }最后 解决: 本文首发于:移动端H5

1.1K20

移动端H5 input输入完成后页面底部留白问题

Contents 1 说明 2 出现原因分析 3 解决 4 补充:解决方案2 5 补充:解决方案3 6 补充:页面来回弹跳 7 最后 说明 最近在用vue写几个H5页面在微信上展示,遇到一个在弹窗上...input输入完成之后点击键盘完成,页面底部留出一片空白问题 ?...出现原因分析 当键盘抬起时,window.scrollY会从0变到键盘高度,所以解决办法就是当input失去焦点时候,将window.scrollY重新设置为0 解决 给所有的input``textarea...behavior: 'smooth' }); }, 300); window.scrollTo(0, 0); } 补充:解决方案3 //解决键盘弹出后挡表单问题...本来iOS是做了这方面的优化,在软键盘弹出和收起时页面会smooth平滑,由于我加了scrollIntoView破坏了原生优化导致弹跳了 解决: handleFocus(event) { clearTimeout

79820

H5直播避坑指南

解决方案: 1.在弹出会显示在视频上方dom时候暂停视频播放 2.将视频所在dom父元素高度设为1 3.处理完弹出事件后将视频所在父元素高度还原 4....这种接管后果是这时我们是没有办法控制视频播放,也没有办法在上面浮动我们dom元素,如弹幕,礼物这些,会完全被视频盖在下面,所以我们目标即是解决这种系统接管问题 3)使用伪全屏(样式全屏)...高度来实现旋转全屏。...这种模式显示没有太大问题,但因为是通过css控制页面dom显示,对于原生空间不能很好控制,如系统键盘 ?...在拉起键盘输入弹幕时候,键盘不受控制还是竖屏显示了 如果页面不涉及与原生组件交互,那么这种方案是一种很可行且兼容性比较好方案 2.用户在点击全屏时,通过js api来控制webview旋转横屏

10.8K151

iOS 12.0 WebView键盘弹出,关闭后界面没有回收问题

iOS 12.0 WebView键盘弹出,关闭后界面没有回收问题 背景 公司有人反馈,iOS 12.0手机上,H5页面有个地方键盘弹出了,关闭之后,再次点击输入框,没有反应了,其实是界面上移了之后,...,添加iOS 12.0之后,设置 contentInsetAdjustmentBehavior 为 UIScrollViewContentInsetAdjustmentAutomatic,设置了之后,键盘问题解决了...,但是又出现新问题,iPhone X系列全面屏适配,之前H5页面body写height:100%地方,会显示高度不对。...,在H5界面监听键盘弹出和收起,在收起时,对webviewscrollview做偏移处理,设置后,发现对笔者项目来说仍旧不生效,笔者项目同一个网页上有多个可输入地方,且有在弹出框输入操作。...故而再次修改: 笔者发现,有人给出参考方法,由H5端,监听键盘弹起和回收,然后进行处理,但是如果让H5处理,需要每个业务H5都要单独处理,所以笔者就想,由原生监听键盘收起通知,然后调用js方法,代码如下

2.4K20

H5直播避坑指南

_5113_1498530055451.png] 解决方案: 1.在弹出会显示在视频上方dom时候暂停视频播放 2.将视频所在dom父元素高度设为1 3.处理完弹出事件后将视频所在父元素高度还原...webkitRequestFullScreen方法来进入视频全屏,那么这个方法会使浏览器完全接管视频播放,如图所示 [1498530657116_1050_1498530656629.jpg] 这种接管后果是这时我们是没有办法控制视频播放...,也没有办法在上面浮动我们dom元素,如弹幕,礼物这些,会完全被视频盖在下面,所以我们目标即是解决这种系统接管问题 3)使用伪全屏(样式全屏) 样式全屏核心是设置video标签宽高,使其撑满整个...dom元素旋转显示 通过-webkit-transform: rotate(90deg)并设置video高度为当前webview宽度,video宽度为当前webview高度来实现旋转全屏。...这种模式显示没有太大问题,但因为是通过css控制页面dom显示,对于原生空间不能很好控制,如系统键盘 [1498530770240_8865_1498530770152.png] 在拉起键盘输入弹幕时候

5.3K130

H5 直播避坑指南

解决方案: 1.在弹出会显示在视频上方dom时候暂停视频播放 2.将视频所在dom父元素高度设为1 3.处理完弹出事件后将视频所在父元素高度还原 4....这种接管后果是这时我们是没有办法控制视频播放,也没有办法在上面浮动我们dom元素,如弹幕,礼物这些,会完全被视频盖在下面,所以我们目标即是解决这种系统接管问题 3)使用伪全屏(样式全屏)...高度来实现旋转全屏。...这种模式显示没有太大问题,但因为是通过css控制页面dom显示,对于原生空间不能很好控制,如系统键盘 ?...在拉起键盘输入弹幕时候,键盘不受控制还是竖屏显示了 如果页面不涉及与原生组件交互,那么这种方案是一种很可行且兼容性比较好方案 2.用户在点击全屏时,通过js api来控制webview旋转横屏

2.7K90

移动端那些戳中你痛点键盘问题及解决方法

当时找了一圈方法,觉得并没有合适解决方法,退而求其次,既然h5无没有办法很好解决吸顶问题,那么这个能力不如就用客户端能力好了,客户端header不属于webview内容,自然webview上推时...衍生问题解决办法 之前header头用是前端自己写header时,没有这个问题,推测是因为安卓手机在键盘弹起时webview高度缩短为整个屏幕高度减去键盘高度, 在之前实现中,由于使用沉浸式...所以解决办法就是让键盘弹起时,添加吸底按钮以及底部元素margin-bottom为header高度就行。...2、吸底元素(也就是按钮)能够在键盘弹出之后,出现在键盘上方 对于这个问题,因为安卓表现是webview缩小,所以在安卓上并不存在这个问题,对于ios,因为ios向上滚动距离最大是键盘高度,但是也有可能滚动距离不是键盘高度...这其实可能只适用于我这种情景,这个解决办法原理是:scrollIntoView(true)想让输入框顶部滚动到与可视区顶部齐平效果,但是由于ios键盘弹起之后最大滚动距离等于键盘高度,所以,通过这个方法会让

7.5K30

安卓H5页面软键盘顶起页面底部

最近在维护一些老页面,发现有一个解决安卓输入法软键盘导致页面布局异常写法挺好,跟大家分享一下1....背景 做过移动端开发的话,大家肯定都遇到过各种移动端兼容问题,例如IOSfixed问题,不同系统浏览器API兼容问题等。...今天我们要讨论也是一个兼容性问题,当安卓h5页面里遇到输入框时候,输入法弹出时候,浏览器会调整布局,导致底部UI被顶上来,具体如下图图片 这里页面的代码其实很简单,就是一个输入框,一个fixed...解决方案 网上有不少解决这个问题办法,大致思路就是通过JS监听高度改变,来确定输入法是不是弹出了,然后对不希望展示内容做特殊处理。...例如这篇文章就写得很好移动端那些戳中你痛点键盘问题及解决方法 - 掘金 (juejin.cn) 但是其实有更简单办法可以解决,通过媒体查询可以纯CSS就解决这个问题。

2.8K30

H5】209-可能这些是你想要H5键盘兼容方案

作者最近一段时间在做 H5 聊天项目,过程中踩过一个大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(或顶)在输入法框上。需求很明确,看似很简单,其实不然。...然而,H5 并没有直接监听软键盘原生事件,只能通过软键盘弹起或收起,引发页面其他方面的表现间接监听,曲线救国。并且,在 IOS 和 Android 上表现不尽相同。...Android 软键盘弹起表现 同样,在 Android 上,输入框获取焦点,键盘弹起,但是页面(webview)高度会发生改变,一般来说,高度为可视区高度(原高度减去软键盘高度),除了因为页面内容被撑开可以产生滚动...有时我们会做一个输入表单,很多输入项,输入框获取焦点,弹起软键盘。...唤起纯数字软键盘 上面的表单输入框要求输入电话号码,类似这样就要弹出一个数字软键盘了,既然说到了软键盘兼容,在这里就安插一下。

3.8K12

可能这些是你想要H5键盘兼容方案

阅读本文大约需要 9 分钟 前言 最近一段时间在做 H5 聊天项目,踩过其中一大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(或顶)在输入法框上。需求很明确,看似很简单,其实不然。...然而,H5 并没有直接监听软键盘原生事件,只能通过软键盘弹起或收起,引发页面其他方面的表现间接监听,曲线救国。并且,在 IOS 和 Android 上表现不尽相同。...Android 软键盘弹起表现 同样,在 Android 上,输入框获取焦点,键盘弹起,但是页面(webview)高度会发生改变,一般来说,高度为可视区高度(原高度减去软键盘高度),除了因为页面内容被撑开可以产生滚动...有时我们会做一个输入表单,很多输入项,输入框获取焦点,弹起软键盘。...唤起纯数字软键盘 上面的表单输入框要求输入电话号码,类似这样就要弹出一个数字软键盘了,既然说到了软键盘兼容,在这里就安插一下。

7.9K20
领券