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()代码>