解决输入框被输入法遮挡的问题
下面我就为大家分享一篇完美解决手机网页中输入框被输入法遮挡的问题,具有很好的参考价值,希望对大家有所帮助。
之前要做一个弹出对话框,填写信息,发现在手机上看的时候,较后的输入框在填写信息时,输入框被输入法遮挡,只能盲填。
前提
1.弹出的对话框用display:fixed定位的
2.对话框大小固定
解决办法
css部分
(dlg-top与dlg-bottom为对话框的类,用于确定对话框的定位方式)
.dlg-top{ position: fixed; top:100px; left:10%; } .dlg-bottom{ position: fixed; bottom:0px; left:10%; }
js部分
“deliver-dlg”为对话框的类
//弹出对话框时,绑定的事件 //绑定输入框获取焦点事件 $(".deliver-dlg input,.deliver-dlg textarea").focus(function(){ var input=$(this); //在输入框获取焦点后,窗口改变的话,执行事件 $(window).resize(function(){ //判断当前输入框是否在可视窗口之外(下面) if($(window).height()-(input.offset().top+input.offset().height-document.body.scrollTop)<0){ //对话框定位方式改为bottom $(".deliver-dlg").removeClass("dlg-top").addClass("dlg-bottom"); } else{ $(".deliver-dlg").removeClass("dlg-bottom").addClass("dlg-top"); } }); }); //取消对话框时,取消事件绑定 $(".deliver-dlg input").unbind(); $(".deliver-dlg").removeClass("dlg-bottom").addClass("dlg-top"); $(window).unbind();
思路解析
简单点说就是改变对话框的定位方式,在默认情况下用top,在有输入法的时候,根据情况用bottom。 在input获取焦点且窗口重设的时候(即输入框弹出),注意先绑定input的focus事件,再绑定窗口改变的事件,因为在手机上,是input获取焦点,输入框才弹出导致窗口大小改变。
再窗口大小改变事件发生之后,判断输入框是否被遮(即不在窗口的可视范围内),采用的办法是用可视窗口的高度($(window).height())是否大于输入框的底部(input.offset().top+input.offset().height-document.body.scrollTop)因为input.offset().top表示的是元素离文档头部的位置,要算元素离可视窗口头部的位置,可以再减去滚动条滚动了多少。以上是判断元素是否在可视窗口底部。
上面是我整理给大家的,希望今后会对大家有帮助。
相关文章:
以上是解决输入框被输入法遮挡的问题的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

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

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

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

Dreamweaver CS6
视觉化网页开发工具

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

最近,有小伙伴在使用Windows11操作系统时,遇到了输入法图标位置易变、希望将其固定在任务栏以便快速切换的问题。为了解决这一困扰,本文将详细介绍在Windows11系统中将输入法图标稳稳地放置于任务栏的具体步骤,以帮助有此需求的小伙伴更加便捷地操控输入法。操作方法1、"win+i"快捷键快速进入到"设置"界面中,进入到新界面后,点击左侧栏中的"时间和语言"选项。2、接着点击右侧中的"语言和区域"。3、随后点击其中的"输入"。4、然后再点击"高级键盘设置"选项。5、最后找到"使用桌面语言栏",

近期,部分用户在使用Windows11操作系统的过程中遇到了微软输入法打字时无法正常显示候选字词框的情况,这让用户在输入文本时无法便捷选取所需汉字,影响了工作效率与使用体验。遇到这种情况应该怎么办呢?下面为大家带来详细解决方案,一起来看看吧。解决方法1、右击右下角任务栏中的输入法图标,选择选项框中的"更多键盘设置"。2、接着点击中文右侧的三个点图标,选择选项列表中的"语言选项"。3、接着再点击输入法右侧的三个点图标,选择"键盘选项"打开。4、然后点击"常规"选项。5、最后将"兼容性"下方的开关按

有些小伙伴对于win11的输入法悬浮窗功能非常不习惯,使用起来总是怪怪的,因此想要关闭这个悬浮窗功能,现在就给大家介绍一下win11系统下关闭悬浮窗的正确操作方法,一起跟着操作吧。win11隐藏输入法悬浮窗1、打开电脑的设置键,然后选择“时间和语言“,进入之后再点击”输入“2、在“高级键盘设置”里找到“切换输入法”,然后把“桌面语言栏”前的勾点上,再进入“语言栏选项”3、打开后,我们点击这里的“隐藏“就可以把语言悬浮窗给关掉了。

1、在手机设置菜单中点击【更多设置】。2、点击【语言与输入法】。3、点击【输入法管理】。4、点击【设置】即可对输入法进行设置。

win10系统是最新款,很多的功能都还没有完善,容易出现一些小bug,给小伙伴们带来了许多的小烦恼,下面就带大家一起来学习一下如何解决切换输入法时很卡的问题。win10系统如何解决无法切换输入法很卡1、点击“开始”按键,打开“设置”2、点击右侧“时间和语言”3、点击左侧窗口“语言”4、点击右侧窗口输入法中的“选项”5、找到“微软拼音”点击“选项”6、点击左侧窗口“词库和自学习”7、将“云候选择”中的开关关闭即可

Win10输入法图标丢失后,很多用户不知道该如何找回。本文将介绍简单的方法,帮助用户找回Win10输入法图标,让您可以方便地切换输入法,提高工作效率。一、输入法不见的原因1、键盘布局问题:如果意外切换了键盘布局,例如从中文切换到英文或其他语言,输入法可能会暂时消失。2、输入法设置问题:在系统设置中,我们可以自定义输入法的显示方式。如果设置不当,可能导致输入法无法显示或隐藏。3、输入法错误或崩溃:输入法软件本身可能存在错误或崩溃,导致输入法无法正常显示。二、调出输入法的方法方法一:1、按【Win+

win11输入法打字不显示选字框怎么解决?详情近期有很多用户在打字的时候出现了这个问题,输入的内容就会出现比较多的错别字,那么要怎么做才能够显示选字框,我们可以对键盘进行设置来开启显示,针对这个问题,本期win11教程小编就来和广大用户们分享解决方法,一起来看看完整的操作步骤吧。win11输入法打字不显示选字框怎么解决:1、如果是微软输入法,可以点击右下角输入法图标,打开更多键盘设置。3、接着点击微软输入法右边三个点打开键盘选项。5、最后打开最下面的兼容性选项即可。

在苹果手机中可以通过键盘页来设置手写,有很多用户不知道要如何设置,用户可以在设置通用的键盘中找到添加新键盘,选择手写后即可完成设置。苹果手机输入法手写怎么设置在手机设置通用的键盘中找到【添加新键盘】。进入页面选择【简体中文】。选择手写后点击【完成】。设置后点击【切换图标】。在页面中找到【手写图标】。设置成功进入【手写】。
