使用安装了iOS 10的iPad,我在浏览器控制台中输入了window.outerWidth
,其值为0
。 OTOH,window.innerWidth
正确生成1024
(横向模式)。
在iOS 9中,window.outerWidth
正确生成了1024
,所以这只是iOS 10测试版中的一个错误,还是我错过了这个属性的微妙之处?
答案 0 :(得分:1)
问题不仅限于iOS 10 Beta,而且我怀疑Apple Devs的修复工作是否应优先考虑,因为iOS设备的浏览器窗口两侧实际上没有外部框架,因此{{1} }与window.innerWidth
相同。
要在不同的上下文中查看此功能,可以在浏览器中弹出打开检查器并模拟较小的设备。内部宽度将等于页面宽度,而外部宽度将等于打开的浏览器的整个宽度。
如果仍然需要使用externalWidth,您可以选择使用以下方法来检查屏幕宽度:
window.outerWidth
let mq = window.matchMedia( "(min-width: 1025px)" );
的评估结果为mq.matches
,然后您可以在台式机上使用true
,在移动设备上使用outerWidth
。或者,您可以像这样为您做一个替代功能:
innerWidth
请注意,let screenWidth = () => {
const mq = window.matchMedia( "(min-width: 1025px)" );
if (mq.matches) {
return window.outerWidth;
} else {
return window.innerWidth;
}
}
的横向宽度比iPad Air 2多1像素。
答案 1 :(得分:1)
如果您在项目中使用jQuery,则可以使用$(window).outerWidth()
和$(window).outerHeight()
。这是一种可以在所有设备上正常工作的解决方法。