我们正在编写基于向导的多表单,并在移动设备上创建基于Helium的流程。
我们的大部分小部件都是基于Angular的,包含文本标题和元素(使用原生键盘)
氦气事件意味着我们滚动页面以显示聚焦元素位于最高位置(流量标题后的最高位置)
滚动基于窗口大小。
|-----Header-----|
| [ title ] |
| [ input ] |
| |
|----Keyboard----|
| 1 2 3 4 5 |
| 6 7 8 9 0 |
|----------------|
直接关注输入,导致原生键盘改变窗口大小,现在页面滚动错误。
我们是否可以检测到键盘关闭事件,然后才会滚动到下一个元素?
答案 0 :(得分:0)
如果我能正确理解您的情景,您可以尝试这样的事情。
基本上你确定当前聚焦的元素是否是输入元素......如果是,则假设键盘正在显示(否则输入数据将很困难)
var currElem = document.activeElement;
if($(currElem).is('textarea, input[type="text"], input[type="password"], input[type="number"]')){
//a textural input element has focus, thus the keyboard is
//very likely showing :-)
}
这不是万无一失的,但理论上我认为这应该有效。