小程序如何处理键盘覆盖输入框(附代码)
本篇文章给大家带来的内容是关于小程序如何处理键盘覆盖输入框(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
在移动端里, 当输入框处于页面比较下方的时候回发生键盘覆盖输入框的情况, 在小程序中也发生了类似情况, 但小程序提供了一些api, 但不能达到需求. 这里来简单说一下解决思路.
小程序的默认行为
在发生了键盘覆盖输入框的时候, 在不操作任何api的情况下, 小程序会把屏幕向上推, 推到输入框正好在键盘上方的位置.
也就是如果不经过处理, 小程序的键盘是不会覆盖输入框的. 但是在我的需求里这样还不够, 因为页面上部分是需要持续展示的内容, 不希望把页面向上推.
所以下面要通过小程序的api来解决这些问题.
cursor-spacing
在比较正常的UI设计中, 输入框外面实际都会有一层wrapper, 而很明显小程序是默认行为是不知道的, 所以结果是会把这层wrapper的下半部分(输入框以下的)切掉. 那么就非常难看了.
引入这个apicursor-spacing, 设多少, input下面就留多少. 这个数字应当是'输入框下边缘到wrapper结束的距离".
小程序的坑在于: 文档上的单位是错的, 本来就需要试才知道这个属性的含义是什么, 所以单位错导致无效果就让一(大)部分人放弃了. 正确的单位是带有单位的字符串. 例如10px
或者100rpx
.
adjust-position
刚才说到我的需求, 我希望页面不向上推, 而直接把输入框顶上来.
于是尝试了这个api. 默认是true, 把他设为false. 效果变成了: 点了输入框, 键盘完美覆盖输入框.
于是在加上cursor-spacing, 发现这两个api是不能同时生效的.
所以最后结论是: 单纯用提供的api无法实现需求了. 所以只能监听事件自己做.
解决方案
手动操作输入框思路:
adjust-position设为false.
在输入框的wrapper的bottom样式绑到本地数据, 并设为absolute定位.
在focus事件里改变输入框的位置.
在blur事件里复原输入框的位置.
按照这个思路操作, 遇到了几个问题:
如何确定输入框的位置
发现在bindfocus事件中可以获得键盘的高度, 经过尝试, 键盘的高度是以px为单位的. 所以直接把bottom的值设为px高度就行了.
如果输入框wrapper的相对定位不是页面底部, 情况就比较复杂, 若是用rpx为单位, 需要获得屏幕宽高来计算px数, 在不麻烦的情况下可以调整布局使wrapper相对于页面底部定位.
在改变style后输入框立即失去焦点
发生了这个情况后表现为: 点了输入框, 输入框的wrapper闪一下又回原处. (因为失去焦点)
经过多次试验, 需要做的是在绑定一个本地变量到focus
属性.
然后用wx:if根据是否focus隐藏输入框, 放一个假的输入框, 点击以后使改变focus属性来唤起键盘.
实现的代码:https://github.com/cwj0417/step/blob/master/src/pages/did/index.vue
以上是小程序如何处理键盘覆盖输入框(附代码)的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

将输入法调至英文后按住Shift键和减号键即可。教程适用型号:联想AIO520C系统:Windows10专业版版本:MicrosoftOfficeWord2022解析1首先检查输入法的中英文打字,调整至英文。2然后同时按住键盘上的Shift键和减号键。3检查界面,即可查看已打出的下划线。补充:Word文档如何快捷输入下划线1如果需要在Word中输入下划线,用鼠标选中空格后,选择字体菜单中选择下划线类型即可输入。总结/注意事项一定要先将输入法换至英文再进行操作,否则无法成功输入下划线。

当我们鼠标暂时失去作用的时候,如何用键盘快捷键的方式打开右键菜单呢?有两种方法,一是按Shift+F10快捷键就可以调处右键菜单,二是键盘上windows和ctrl中间带着目录的键也可以,具体的教程下面一起来看看吧。用键盘快捷键打开右键菜单的方式第一种方法1、在电脑桌面中不选择任何文件时,按下键盘上的下图红色圈标注的按键,此按键为快捷打开右键菜单的按键。2、即可将桌面的右键菜单打开,如果需要选择其中的项目,再用鼠标选中即可第二种方法1、其实我们使用“Shift+F10”快捷键就可以调处右键菜单2

计算机的输入设备如键盘和鼠标都需要人类操作,不能独立运行。Windows笔记本电脑上的触摸板和键盘也一样。文本不会自动输入,鼠标也不会自动点击。若发生异常情况,一定存在原因。如果遇到笔记本电脑键盘自动输入问题,请按照指南进行修复。Windows笔记本电脑上的键盘自动打字当您的Windows笔记本电脑上的键盘自动打字时,您可以通过以下方式进行修复。手动检查键盘确保键盘工作正常检查笔记本电脑是否已远程连接检查是否有任何自动打字程序正在运行运行恶意软件扫描调整键盘设置重新安装键盘驱动程序让我们详细了解

本站2月29日消息,迈从今日为K87三模机械键盘推出了“风信子轴”“琉光冰淇淋轴”两款版本,该键盘主打“Gasket结构、80%配列”,相关轴体键盘价格信息如下:“风信子轴”版:首发价299元“琉光冰淇淋轴”版:首发价379元据介绍,系列键盘使用Gasket结构,采用87键80%配列,全键无冲,支持热插拔,号称选用“原厂/MDA双色PBT键帽”,使用1.2mm单键开槽PCB(下灯位),配备RGB灯效,并拥有磁吸收纳铭牌设计。此外,这款键盘配备6000毫安电池,无线延迟3ms,官方未公布键盘尺寸及

未来几个月将推出的Windows11电脑键盘上将新增一个Copilot键。该键可让用户在不升级新PC的情况下,通过按下指定按钮轻松进入副驾驶模式。本指南将详细介绍如何在任何Windows11键盘上设置副驾驶按钮。微软近日宣布,他们在推进人工智能辅助驾驶方面取得了重要进展。Windows11将新增一个专门的Copilot密钥,进一步提升个人电脑用户的体验。这一硬件变化代表了WindowsPC键盘三十年来的首次重大升级。接下来几个月,新的Windows11电脑将会搭载全新的Copilot键设计在键盘

本站8月12日消息,VGN于8月6日推出了联名《艾尔登法环》键鼠系列产品,包含键盘、鼠标和鼠标垫,采用菈妮/褪色者定制主题设计,目前系列产品已上架京东,售价99元起。本站附联名新品信息如下:VGN丨艾尔登法环S99PRO键盘该键盘采用纯铝合金外壳,辅以五层消音结构,使用GASKET板簧结构,拥有单键开槽PCB、原厂高度PBT材质键帽、铝合金个性化背板;支持三模连接和SMARTSPEEDX低延迟技术;接入VHUB,可一站式管理多款设备,首发549元。VGN丨艾尔登法环F1PROMAX无线鼠标该鼠标

苹果手机键盘用户想要设置手写输入法,但是不知道怎么操作,其实是很简单的,用户可以在手机的键盘设置中直接选择手写输入法输入,如果没有也可以手动添加手写输入法。苹果手机键盘怎么设置手写输入法答:在键盘设置中直接启用手写输入法1、苹果用户在使用输入法的时候,默认是会开启手写输入法的。2、用户只需要在打字的时候直接点击左下角长按选择手写输入法就可以了。3、如果用户的手机里面没有手写输入法也可以进行手动的添加。4、用户进入设置找到通用键盘设置在第一个键盘里面添加手写输入的选项就可以了。5、使用手写输入法可

微信键盘怎么设置皮肤?微信键盘是一款非常智能的手机输入法软件,这个软件上面有好多人性化的功能,它可以让用户自己选择输入模式,还可以在这个软件上面以最快的速度找到自己想要的表情然后发出去。这个软件上面还可以让用户自己更换键盘的皮肤,很多用户都还不太清楚要怎么更换皮肤,下面小编整理了皮肤的更换方式供大家参考。微信键盘皮肤的设置方法在手机的微信、短信或其他需要使用键盘的应用中,您可以点击键盘左上角的输入法设置图标,进入设置页面查看各种输入法的功能设置选项。 2、在输入法的设置页面点击“个性皮肤
