Javascript 三星Galaxy S7是否为视口高度指定正确的值?

Javascript 三星Galaxy S7是否为视口高度指定正确的值?,javascript,android,jquery,mobile,samsung-mobile,Javascript,Android,Jquery,Mobile,Samsung Mobile,加载页面时,为了检查是否使用横向或纵向样式,我们使用视口宽度和高度: var viewPortWidth = $(window).width(); var viewPortHeight = $(window).height(); if(viewPortWidth > viewPortHeight) { // Landscape style } 除了三星Galaxy S7,它在所有手机中都可以正常工作,因为三星Galaxy S7在初始负载时的高度值不正确 在三星Galaxy S7中,当

加载页面时,为了检查是否使用横向或纵向样式,我们使用视口宽度和高度:

var viewPortWidth = $(window).width();
var viewPortHeight = $(window).height();

if(viewPortWidth > viewPortHeight)
{
// Landscape style
}
除了三星Galaxy S7,它在所有手机中都可以正常工作,因为三星Galaxy S7在初始负载时的高度值不正确


在三星Galaxy S7中,当页面以纵向方向加载时,我会将这些值打印到控制台:

$(window).width();
返回330

$(window).height(); 
$(window).height();
返回310-错误


然后,当页面完全加载时,我再次在控制台中查询这些值,这一次:

$(window).width(); 
返回330

$(window).height(); 
$(window).height();
正确返回520


  • 当我刷新页面时,它会按预期工作-仅在初始 从另一页导航到此页时,加载
    $(window).height()
    不包含正确的值
  • 这只是开发和测试环境中的一个问题,并非如此 关于生产的问题
  • 这只发生在某些页面上,而不发生在其他页面上
将正确的值分配给
$(window).height()
似乎需要大约150毫秒的时间,因此我现在将分配样式的函数延迟了150毫秒


我很好奇这是否是三星Galaxy S7特有的问题。以前有人遇到过这个问题吗?如果是的话,你是如何解决的?

这是由Android上的软键盘造成的。当键盘打开值
$(窗口).height()时更改为(上一个窗口高度-键盘高度)

我会在搜索栏中键入并按enter键,然后当搜索结果页面加载上一页的软键盘时,在我完成样式检查的前x毫秒内,软键盘仍未缩回

这是通过使用
window.orientation
中的值来检查Android设备是处于纵向模式还是横向模式来解决的,而不是仅仅依靠
$(window.width()中的值的比较
$(窗口).height()