我想要的是什么:
我试图找出跨设备的网页的有效视口大小 - 因此屏幕上的内容可用的大小,没有状态栏和其他东西。
我尝试了什么:
screen.availWidth
/ screen.availHeight
- 似乎这实际上抓住了浏览器窗口大小等等。在任何情况下,状态栏和其他内容都在此中。
jQuery的$(document).width()
/ $(document).height()
- 显然不起作用,因为它给出了整个文档的大小,我只想要视口。
jQuery的$(window).width()
/ $(window).height()
- UI似乎也包括在内。此外,在横向模式下,这有时会给iOS带来非常奇怪的结果(在我的iPad 2宽度和高度都返回1024 - 很奇怪!)
window.outerWidth
/ window.outerHeight
- 似乎与$(window)
对应
window.innerWidth
/ window.innerHeight
- 这似乎是要走的路,但我现在要描述的是一个主要问题。
为什么window.innerX
不起作用?
至少在iOS 7上,最大的问题是:橡皮筋。例如,如果我确定innerHeight
,而当前正在进行某些橡皮筋,则该值太小 - 似乎从innerHeight
中减去橡皮筋区域(橡皮筋中的灰色区域)实际上这对我来说完全没用,因为我试图在触摸事件中获得这个值。我发现无法阻止这种情况(除了禁用橡皮筋)并且无法找到当前的橡皮筋区域尺寸或其他东西。 offsetTop
似乎是0,所以橡皮筋不在那里。
任何想法如何解决这个问题?有哪些好方法可以在纵向和横向中获得实际视口大小?
我没有找到innerWidth
/ Height
的橡皮筋问题的解决方案,但似乎jQuery的$(window).width()
/ height()
通常会给出视口大小。这对我来说不正常的原因是我在viewport元标记中使用了height=device-height
。省略这一点,返回的值似乎就是我想要的。