Javascript CSS-Android键盘上推元素
我有一个Javascript CSS-Android键盘上推元素,javascript,css,position,cross-platform,Javascript,Css,Position,Cross Platform,我有一个div和位置:relative。在这个div中还有另一个div的位置:绝对 我还将屏幕限制为800*600px。当我在Android操作系统上打开我的网页时(在那里尝试了Chrome浏览器),似乎每当键盘弹出时,它就会推送整个视图 所以我的问题是,有没有办法控制它?据我所知,似乎JavaScript或jQuery无法控制,CSS仍然99%确定没有。那么,我说得对吗?我认为你不能阻止键盘向上推视图。通常,浏览器会降低窗口的高度,导致某些图元被推到视图之外。它这样做是为了尝试在视图中获得聚焦
div
和位置:relative
。在这个div
中还有另一个div
的位置:绝对
我还将屏幕限制为800*600px。当我在Android操作系统上打开我的网页时(在那里尝试了Chrome浏览器),似乎每当键盘弹出时,它就会推送整个视图
所以我的问题是,有没有办法控制它?据我所知,似乎JavaScript或jQuery无法控制,CSS仍然99%确定没有。那么,我说得对吗?我认为你不能阻止键盘向上推视图。通常,浏览器会降低窗口的高度,导致某些图元被推到视图之外。它这样做是为了尝试在视图中获得聚焦的文本字段,而不是隐藏在键盘后面
通过使用javascript将处理程序附加到文本输入或textarea focus事件,我解决了这个问题。然后我将主体的scrollTop值更改为0,然后将元素滚动回视图
以下是用AngularJS实现的解决方案
element.focus(function() { //focus event handler
$timeout( function(){
angular.element(document.querySelectorAll("body")).scrollTop( 0 ); //scroll body back
},1000);
});
需要稍微延迟,因为在字段聚焦后,键盘需要时间弹出。隐藏手机中的div,使用
@media screen and (max-height: 480px){
div{
display: none;
}
}
因此,只要键盘处于活动状态,该特定元素就不会出现