首页
学习
活动
专区
圈层
工具
发布

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

背景 在最近的一个Hybrid App项目中,我实现的H5有以下两个需求: 使用quill.js实现富文本编辑器,但是,工具栏需要固定定位到底部,当输入法弹出时,工具栏需要悬浮在输入法键盘之上,如下图所示...当光标聚焦到编辑区输入文字时,系统级的输入法键盘弹出,此时,键盘的弹出对webview的高度会有一定的影响,而android和ios对webview的处理有所不同,简单的说就是: android上:在下图中...的高度不会随着键盘的弹出而发生改变,始终是左图蓝色框的高度 综上,当工具栏使用fixed来定位时,在android上,当键盘弹出时webview的高度会减小,所以工具栏会悬浮在键盘之上,也就是说,在android...但是,ios不会改变webview的高度,因此,当键盘弹出时,工具栏始终位于屏幕底部,从而被键盘遮挡,如此就不符合需求,所以,需要针对ios做特别处理 ios上的解决方案 有以下三种解决方案: 改设计:...对于这个问题的解决需要分为以下几步: 如果滚动区的高度小于屏幕的高度,说明需要在底部填充空元素div来将页面撑开,产生垂直滚动条,以便将输入框顶上去,这个div的高度为弹出框的高度,暂定为popH,对于这种情况

6.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    2019-08-09 满屏切换vue项目中使用 vue-fullpage.js

    、导航、元素等时使用 // paddingTop: "100px", // //设置每个section底部的padding,当我们要设置一个固定在底部的菜单、导航、元素等时使用 //...// //是否可以使用键盘方向键导航 // keyboardScrolling: false, // //在移动设置中页面敏感性,最大为100,越大越难滑动 //...navigationPosition: 'right',//导航小圆点的位置 scrollBar: false, keyboardScrolling: false,//是否可以使用键盘方向键导航...、导航、元素等时使用 // paddingTop: "100px", // //设置每个section底部的padding,当我们要设置一个固定在底部的菜单、导航、元素等时使用 //...// //是否可以使用键盘方向键导航 // keyboardScrolling: false, // //在移动设置中页面敏感性,最大为100,越大越难滑动 //

    13.5K30

    移动端Webapp中的那些Bug

    IOS overflow: scroll 全屏滚动出界 1.1 出现场景 滑动到最顶部(最底部)的时候,停下,然后继续向上滑动(向下滑动) ?...那么可以具体分这几步来解决: 没有focus的时候采用fixed固定头部 不要让用户进行缩放 当输入框focus时,采用绝对定位头部,同时使用window.pageYOffset来计算滑动的距离,设置头部的...Android弹出的键盘遮住输入框 5.1 出现场景 当输入框比较靠下时,android上弹出键盘,会将输入框遮住。...逗比时刻:我为了测试较老的Android版本,特地装了genymotion,后来发现根本就没有键盘弹出。 总之,如果遇到了上述的问题,不妨可以试试这样的办法。 ?...如果可视区域的高度大于后者,说明此时的输入框需要上移,那么就将body向上平移,否则不平移。在键盘消失的时候回归到原来的位置就好。

    3.4K50

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

    在 IOS 上,使用第三方输入法,高度计算存在偏差,导致在有些输入法弹起,将输入框挡住一部分。 在有些浏览器上使用一些操作技巧,还是存在输入框被输入法遮挡。...兼容 IOS12 + V6.7.4+ 如果你在用 IOS12 和 V6.7.4+版本的微信浏览器打开上面表单输入的 demo ,就会惊奇的发现键盘收起后,原本被滚动顶起的页面并没有回到底部位置,导致原来键盘弹起的位置...微信官方已给出解决方案,只需在软键盘收起后,将页面(webview)滚回到窗口最底部位置(clientHeight位置)。 console.log('IOS 键盘收起啦!')...-- 省略几千行聊天内容 --> div> div class="input__content"> div class="input" contenteditable="true">div...在 UC 浏览器上,软键盘弹起后,浏览器上面的标题栏高度就有个高度变小延时动态效果,这样导致 webview 往下滚了一点,底部输入框滚到了非可视区。

    4.6K12

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

    在 IOS 上,使用第三方输入法,高度计算存在偏差,导致在有些输入法弹起,将输入框挡住一部分。 在有些浏览器上使用一些操作技巧,还是存在输入框被输入法遮挡。...兼容 IOS12 + V6.7.4+ 如果你在用 IOS12 和 V6.7.4+版本的微信浏览器打开上面表单输入的 demo ,就会惊奇的发现键盘收起后,原本被滚动顶起的页面并没有回到底部位置,导致原来键盘弹起的位置...微信官方已给出解决方案,只需在软键盘收起后,将页面(webview)滚回到窗口最底部位置(clientHeight位置)。...-- 省略几千行聊天内容 --> div> div class="input__content"> div class="input" contenteditable="true">div...在 UC 浏览器上,软键盘弹起后,浏览器上面的标题栏高度就有个高度变小延时动态效果,这样导致 webview 往下滚了一点,底部输入框滚到了非可视区。

    8.9K20

    终于等到你,新的虚拟键盘API 即将到来,快来先睹为快吧!

    浏览器将向上滚动以使输入框在键盘上方,因此粘性标题和浮动按钮将消失。 它看起来与以下内容相似: 这是移动浏览器中的默认行为。...浏览器支持 在撰写本文时,VirtualKeyboard API仅在Chrome for Android中受支持。在下一部分中,我将探讨一些例子和使用情况,以展示它的帮助性。...VirtualKeyboard API 的使用案例 底部固定操作 在较小的视口上,您可能需要一个固定在界面底部的呼叫行动按钮或页脚。 考虑下面的图示,我们有一个固定在底部的CTA按钮。...你可能会对由于标题和固定底部的存在而导致的空间减少感到困惑。我们可以使用垂直媒体查询来在垂直空间足够的情况下显示标题。...Linkedin帖子表单和导航 我看到应用虚拟键盘API的潜力很大的一个例子是LinkedIn帖子的发布表单和导航显示方式。请看下图: 帖子表单和导航固定在底部。

    2.1K20

    移动端爬坑记 --- (1)布局与样式上的奇葩偶遇

    有些android不带这个很奇葩【错乱】,且不要使用margin:0 auto【作用于子元素】 在滚动包裹层添加这么一条私有前缀样式即可享受类似APP的滑动效果,不仅丝滑,还带弹性!...IOS滚动窗滑动到底部还能弹窗拖拉的奇葩修复 这个方案是通过计算离底部多远加状态来阻止touch事件 // 防止内容区域滚到底后引起页面整体的滚动 var content = document.querySelector...'00' : '01'; } else if (ele.scrollTop + ele.offsetHeight >= ele.scrollHeight) { // 已经滚到底部了只能向上滚动...border: 0; -webkit-appearance: none; } 旋转屏幕时,字体大小调整的问题 html, body, form, fieldset, p, div...-ms-user-select: none; } IOS禁止保存或拷贝图像 img { -webkit-touch-callout: none; } IOS中input键盘事件调用缓慢

    57310

    Android 十年之路: 主屏与导航

    当时的系统使用了大量的实体按钮并同时搭载了触摸屏幕。通话、结束通话、返回主屏、后退、菜单,这些功能都分别对应着独立的实体按钮,我们甚至还安装了实体的键盘和轨迹球。...在轨迹球/键盘和触摸屏之间切换非常尴尬,并不一致的 UI 模式使其难以使用。因此,我们在下一个版本中加入了软键盘来替代实体键盘。...我们还将快速搜索框移动到屏幕底部,这样给人的感觉更自然,用户轻松就可以点到它。...我们将 Overview 和 All apps 这两个指令整合到了一个更智能的操作中: 用户从屏幕底部向上滑动即可访问。...这个用于显示所有应用的向上滑动手势现在可以在任何应用中运行,可以显示您最近使用的应用,可能接下来会启动的应用,当然还有包含所有应用的列表。

    99310

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

    (谷歌浏览器的设计原则,还有一种可能就是当没有内容的时候光标的高度等于input的line-height的值,当有内容时,光标从input的顶端到文字的底部 解决办法:高度height和行高line-height...出现原因分析: 笼统说微信浏览器的内核,Android上面是使用自带的WebKit内核,iOS里面由于苹果的原因,使用了自带的Safari内核,Safari对于overflow-scrolling用了原生控件来实现...3、ios键盘唤起,键盘收起以后页面不归位 问题详情描述: 输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑 出现原因分析: 固定定位的元素 在元素内 input 框聚焦的时候 弹出的软键盘占位...失去焦点的时候软键盘消失 但是还是占位的 导致input框不能再次输入 在失去焦点的时候给一个事件 解决办法: div class="list-warp"> div class="title...">投·被保险人姓名div> div class="content"> <input class="content-input" placeholder

    4.1K30

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

    (谷歌浏览器的设计原则,还有一种可能就是当没有内容的时候光标的高度等于input的line-height的值,当有内容时,光标从input的顶端到文字的底部 解决办法:高度height和行高line-height...出现原因分析: 笼统说微信浏览器的内核,Android上面是使用自带的WebKit内核,iOS里面由于苹果的原因,使用了自带的Safari内核,Safari对于overflow-scrolling用了原生控件来实现...3、ios键盘唤起,键盘收起以后页面不归位 问题详情描述: 输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑 出现原因分析: 固定定位的元素 在元素内 input 框聚焦的时候...弹出的软键盘占位 失去焦点的时候软键盘消失 但是还是占位的 导致input框不能再次输入 在失去焦点的时候给一个事件 解决办法: div class="list-warp"> div class...="title">投·被保险人姓名div> div class="content"> <input class="content-input"

    3.4K30

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

    (谷歌浏览器的设计原则,还有一种可能就是当没有内容的时候光标的高度等于input的line-height的值,当有内容时,光标从input的顶端到文字的底部 解决办法:高度height和行高line-height...出现原因分析: 笼统说微信浏览器的内核,Android上面是使用自带的WebKit内核,iOS里面由于苹果的原因,使用了自带的Safari内核,Safari对于overflow-scrolling用了原生控件来实现...3、ios键盘唤起,键盘收起以后页面不归位 问题详情描述: 输入内容,软键盘弹出,页面内容整体上移,但是键盘收起,页面内容不下滑 出现原因分析: 固定定位的元素 在元素内 input 框聚焦的时候...弹出的软键盘占位 失去焦点的时候软键盘消失 但是还是占位的 导致input框不能再次输入 在失去焦点的时候给一个事件 解决办法: div class="list-warp"> div class...changefocus(){ let u = navigator.userAgent, app = navigator.appVersion; let isAndroid = u.indexOf('Android

    4.1K43

    Android新特性介绍,ConstraintLayout完全解析

    我们都知道,在传统的Android开发当中,界面基本都是靠编写XML代码完成的,虽然Android Studio也支持可视化的方式来编写界面,但是操作起来并不方便,我也一直都不推荐使用可视化的方式来编写...表示固定值,也就是给控件指定了一个固定的长度或者宽度值。 ?...然后我们希望让这两个按钮在水平方向上居中显示,在垂直方向上都距离底部64dp,那么就需要先添加一个垂直方向上的Guideline,如下图所示。 ? 我来对上图中的操作进行一下解释。...接下来我们开始实现让两个按钮在水平方向上居中显示,并距离底部64dp的功能,如下图所示。 ?...这样就实现了让两个按钮在水平方向上居中显示,在垂直方向上都距离底部64dp的功能了。 自动添加约束 不过如果界面中的内容变得复杂起来,给每个控件一个个地添加约束也是一件很繁琐的事情。

    2.3K70

    fullPage.js全屏滚动插件

    如果你要制作一个全屏的网页,使用这个插件在合适不过,如QQ浏览器官方网站 直接下载 使用方法 1.引入fullpage.css文件 使用插件的滚动方式,如果选择 false,则会出现浏览器自带的滚动条 scrollOverflow (true/false)内容超过满屏后是否显示滚动条 css3 (true/false) 是否使用...true/false) 是否使用键盘方向键导航 continuousVertical (true/false)是否循环滚动,与 loopTop 及 loopBottom 不兼容 5.常用方法...-- -- moveSectionUp() 向上滚动 moveSectionDown() 向下滚动 moveTo(section, slide) 滚动到 moveSlideRight() slide 向右滚动...setAutoScrolling() 设置页面滚动方式,设置为 true 时自动滚动 setAllowScrolling() 添加或删除鼠标滚轮/触控板控制 setKeyboardScrolling() 添加或删除键盘方向键控制

    18.7K20
    领券