window.innerWidth /高度和橡皮筋

时间:2014-08-09 10:16:39

标签: javascript jquery ios viewport rubber-band

我想要的是什么:

我试图找出跨设备的网页的有效视口大小 - 因此屏幕上的内容可用的大小,没有状态栏和其他东西。

我尝试了什么:

  • 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。省略这一点,返回的值似乎就是我想要的。

0 个答案:

没有答案