在webapp中,我们点击文本框,可以显示键盘。点击键盘上的“完成”,可以隐藏键盘。
按照之前文章《webapp之结构布局实现方案》介绍(回复数字8可以阅读),页面是不存在刷新,只是布局之间切换。这个时候会存在,文本框输入内容后,点击webapp上按钮执行操作后,切换到下一个页面,但是键盘仍然存在并未隐藏。
这样的情况相对尴尬,为了避免这种不流畅的体验,又怎么可以解决呢?
在web中,页面刷新,键盘会自动消失,按照这个思路,如果如果文本框节点消失,键盘也会消失。
有了这个思路就好办
比如有一个文本框
<div class="inputline"><input type="search" class="searchinput" placeHolder="请输入内容进行搜索"></div>
用户输入内容后,会切换到另外一个页面显示搜索结果,按照原来的方式,可恶的键盘会遮盖在上面,巨操蛋。
那按照新的思路,用户点击搜索按钮后,获取负节点,$(“.inputline).empty(),即可隐藏键盘。再顺利进入下一页。
这种做法,虽然能够实现问题,但也有很多负面效果。
比如:
文本框效果,内容样式变化导致的突兀感。
我的做法是,文本框一律-webkit-appearance:none 处理,文本框样式交给父元素实现。并且在父元素中定位一个备用节点,可以获取文本框内容,默认hidden。一旦文本框节点清空,备用节点显示,代替文本框的输入内容。这个就要处理好css问题,不过相信对于前端这也不是问题。
明天继续关于键盘控制,主要讲,怎么利用input实现键盘上按键的搜索功能。绝对仿真,和原生app效果极其类似。

