javascript - 检测地址栏是否显示在 iPhone 浏览器中

标签 javascript iphone

我正在尝试以面向 future 且与设备无关的方式检测 iPhone 浏览器中的地址栏何时显示。这是显示在顶部以显示 URL 的工具栏。它可以通过调用隐藏:

window.scrollTo(0, 0)

我想做的是检测它何时显示(从而减少可用的查看空间)并设置一个计时器以在一秒钟左右后再次隐藏它。任何比这更频繁的情况都会很烦人,因为用户将无法访问地址栏。

我试过检查 window.pageYOffset,不幸的是,如果 url 栏的任何部分可见,这将返回零。

不想在 iPhone 上硬编码任何尺寸并根据当前视口(viewport)尺寸检查这些尺寸。它太脆弱了。

有人知道这里的解决方案吗?

最佳答案

window.innerHeight 属性正是您要找的。这是屏幕上实际内容的高度。当顶部的工具栏可见时,它会明显减少,因为内容的空间较小。在我的 iPhone 4 上有一个我似乎无法弄清楚的小问题 - window.innerHeight 有时会在屏幕的某些滚动位置返回 3 个像素。

我已经为您设置了一个示例,它或多或少地完成了您的要求,它至少应该让您入门:

http://jsfiddle.net/rUSEb/show/light (在您的 iPhone 上进行测试)。

关于javascript - 检测地址栏是否显示在 iPhone 浏览器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3524216/

相关文章:

javascript - 如何禁用 Jquery Waypoints?

javascript - ng-repeat 的意外结果

iphone - quartz : can't create a rounded rectangle with gradient fill

iphone - 在 xib 文件中选择后如何更改 uibutton 图像

iphone - 如何在 AppDelegate iPhone 应用程序中使用@protocol?

javascript - Angular 将参数传递给 Laravel 进行编辑

javascript - Web worker错误

javascript - JavaScript 或 IEEE-754 中的舍入怪癖?

iphone - 删除媒体选择器中的完成按钮

iphone - 访问应用程序visibleViewController?