【发布时间】:2017-02-24 19:40:12
【问题描述】:
在加载页面时,要检查是否使用横向或纵向样式,我们使用视口宽度和高度:
var viewPortWidth = $(window).width();
var viewPortHeight = $(window).height();
if(viewPortWidth > viewPortHeight)
{
// Landscape style
}
在所有手机中都可以正常工作,但三星 Galaxy S7 除外,在初始加载时高度值不正确。
在三星 Galaxy S7 中,当页面以 纵向 方向加载时,我将这些值打印到控制台:
$(window).width();
返回 330
$(window).height();
返回 310 - 不正确
然后,当页面完全加载时,我再次在控制台中查询这些值,这次:
$(window).width();
返回 330
$(window).height();
返回 520 - 正确
- 当我刷新页面时,它按预期工作 - 仅在初始
加载,当从另一个页面导航到这个页面时,
$(window).height()的值不正确。 - 这只是开发和测试环境的问题,不是 生产问题。
- 这只会在某些页面上发生,而不会在其他页面上发生。
将正确的值分配给$(window).height() 似乎需要大约 150 毫秒,所以我现在将分配样式的函数延迟了 150 毫秒。
我很好奇这是否是三星 Galaxy S7 特有的问题。以前有没有人遇到过这种情况,如果有,您是如何解决的?
【问题讨论】:
标签: javascript android jquery mobile samsung-mobile