重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
移动web聊天页面,输入框在底部的时候,点击输入,弹起软键盘,iOS在将页面推上的时候会回弹一下,导致键盘刚好遮挡到输入框。
专注于为中小企业提供网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业福鼎免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。
初次触发输入框的focus的时候,iOS 键盘默认是以英文键盘高度推上页面,但一般我们的默认输入是中文,会导致软键盘的高度变化,中文输入键盘高度高于英文,所以导致了遮挡。
Element.scrollIntoViewIfNeeded() 方法用来将不在浏览器窗口的可见区域内的元素滚动到浏览器窗口的可见区域。 如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动。 此方法是标准的 Element.scrollIntoView() 方法的专有变体。
当键盘在切换中英输入法时,键盘高度变化仍然会引起键盘遮挡
监听输入框的 focus 、 blur 事件,当聚焦时,循环调用 input.scrollIntoViewIfNeeded 方法。
当监听到 blur 时,停止循环。
显示搜索按钮需要满足3个条件:
1.input在form标签中
2.form标签设置了action属性值
3.input设置type为search
示例如下:
form action="#"
input type="search" /
/form
这种情况下点击搜索按钮会跳转到action对应的地址进行搜索
如果我们需要js来处理搜索逻辑,可以设置form不提交,并且监听输入框的keydown事件
示例如下:
form action="#" onsubmit="return false"
input type="search" id="t_search" /
/form
script type="text/javascript"
$("#txt_search").keydown(function (e) {
if (e.keyCode == 13) {
//搜索处理
}
});
/script
还有一个前往按钮,也类似,把type换成text就可以了,所以form很重要,如果我们不放form,就是“换行”按钮了。
end
最近项目有个需求,我们使用的是PDA装置,它有扫描枪,可以让扫描出来的内容填写到html的input控件中。
但是有一个棘手问题,就是input控件只要获取焦点,就会弹出键盘。
项目的需求,希望刚开始时,只是将焦点聚集在input控件上,可以通过扫描枪输入,然后点击input控件时,还能弹出键盘进行修改。
这个问题解决核心就是 input控件聚焦的时候,不弹出键盘,当点击的时候,才弹出键盘。
尝试了很多方法,最后发现了readOnly属性一个诡异作用。当调用 input控件的focus()方法时,如果readOnly属性为true,那么不会弹出键盘,但是焦点已经在 input控件上了。这个时候,再将readOnly属性设置为false,那么这个时候键盘不会弹出,但是可以扫描枪输入了。
示例:
Onclick 单击事件
Onload 载入事件
Onfocus 获得焦点事件
Hover鼠标经过事件