- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
简短版:在我的移动网络应用程序中,我想始终检测屏幕的可视区域(例如,软键盘顶部(如果存在)和标题栏底部之间的空间),这样我就可以调整我的布局,不缩放,并始终保持页面在屏幕上完全可见。有什么可靠的方法可以做到这一点吗?
更长的版本:在应用程序中,我正在抓取所有触摸事件并自行控制平移和缩放。控制栏固定在屏幕的顶部和底部,始终可见。我的视口(viewport)设置是:
<meta name="viewport" content="width=device-width; initial-scale=1.0;
maximum-scale=1.0; user-scalable=no">
我的愿望是始终使我的页面布局适应浏览器窗口的可视区域,因此屏幕上不会出现任何内容。因此,当键盘出现或消失,或者方向发生变化时,我需要检测宽度和高度并相应地重新布局。
如果没有屏幕键盘,window.innerWidth 和 window.innerHeight 就足够了。但是,当键盘出现时,事情变得古怪(仅在某些严格控制的条件下工作)。天堂禁止在键盘打开时方向发生变化。
DOM 中有什么可以告诉我我想要什么吗?我真的更愿意动态地解决这个问题,而不是将界面元素的大小硬连接到我的代码中,但如果没有其他方法,我会求助于它。
抱歉说得冗长,很难描述我经历过的所有怪事。我的测试主要在运行 3.2 的 iPad 和运行 4.1 的 iPhone 上进行;两者的行为一直不一致。
最佳答案
最接近您所追求的可能是 screen.availHeight
,它显示屏幕高度减去标题栏。但是,即使使用 window.onresize
事件,这在您调出屏幕键盘或旋转屏幕时也不会改变。恐怕我想不出一种方法来考虑这一点。
关于javascript - 移动 Webkit : reliably detect viewable area in all situations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4082410/
之前没用过线程,但想我可能遇到了一个机会: 我编写了一个脚本,它可以读取大约 500 个 Excel 文件的数组,并使用 Parse::Excel 从工作簿中的特定工作表中提取值(平均每个工作簿有两张
我有一个表“客户”和一个子表“订单”。 对于特定 View ,我需要显示每个客户的最后订单。 由于您不能在联接中使用 LIMIT,我首先使用了一个复杂的解决方案,其中包含 LEFT JOIN、GROU
我使用 Farseer 已经有一段时间了,从事物理教学平台项目。我脑子里有几个关于引擎的问题很长一段时间都没有得到解答,其中很多是关于引擎的碰撞处理。 许多人似乎无法理解引擎的工作原理,部分原因是 F
对于表格: address: address_id, country, city user: user_id, username, address_id store: store_id, addres
mysqli_query($dbc, "DROP TABLE `applicants`") or die(mysqli_error($dbc)); mysqli_query($dbc, "DROP T
在我的情况下,更好的解决方案是什么?如何设计类以使它们不那么耦合? 我有一个库 (API),它提供了一些功能(例如,使用 subscribe 方法订阅流式外汇价格)。我有一个 API 客户端,它告诉
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我找不到正确的方法来让我的 GET 处理程序正常工作。在下面的代码中,当我向该端点发送 GET 请求时,我的数组元素全部显示为“Promise:Pending”。你能建议一种方法来解决它吗?我尝试使用
我目前已经构建了一个系统来检查用户 IP、浏览器和随机字符串 cookie 以确定他是否是管理员。 在最坏的情况下,有人会窃取我的 cookie,使用与我相同的浏览器,并掩盖他的 IP 以显示为我的
我的 C++ winAPI 应用程序需要在将文件上传到服务器之前创建一个临时文件。所以我搜索了创建临时文件的方法,发现有很多方法可以做到这一点。 您能告诉我吗:对于以下每种方法,我应该在哪种情况下使用
if (signal(SIGINT, SIG_IGN) != SIG_IGN) signal(SIGINT, sig_int); 这段代码我已经看过好几遍了。这让我很困惑。这样做,只有当信号当
编译器告诉我AnyObject?没有名为'count'的成员。对于以下代码。我想知道是否有一种方法可以将其强制转换为NSArray? if answer.objectForKey("
我有某种资源可以由两种类型的任务使用:由许多不同线程同时运行的普通任务和很少由单个线程运行的特殊任务。 我的目标是: 除非特殊任务正在运行,否则所有普通任务都应该能够正常访问此资源。 特殊任务还应等待
“特定情况”是指它使用一些它可以访问的数据,例如您当前的数据库设置、某些操作系统的版本等。 想象一下,如果编译器会检查您当前在应用中使用的数据库,并向您发出警告,说'让您知道,您数据库中的当前数据永远
在呈现列表时,我可以找到的所有信息都使用键突出显示,例如: {array.map((item, index) => {item})} 在列表以外的情况下,提供 key 是否也有帮助? 简单
我正在开发一个看起来像一本书的 SPA(单页应用程序)。 在书的一侧有标签,用户可以单击这些标签以导航到书的不同区域。 这些选项卡还使用 CSS3 转换对其应用了转换效果。 问题是,有时,当我单击其中
我有一个应用程序,我即将发布到应用程序商店。该应用程序与公司名称相同。我知道命名捆绑标识符的推荐方法是 com.yourcompanyname.appname 但是,例如,像这样命名它似乎很愚蠢且重复
我想做什么 我有一个 Unity 的小游戏,我将用户分数存储在 firebase 实时数据库中以稍后显示排行榜,当用户第一次进入游戏时,我还会询问用户名并将其与 deviceId 一起保存(以识别设备
我正在尝试在 R 中做一个简单的基因组轨道交叉,并遇到主要的性能问题,可能与我使用 for 循环有关。 在这种情况下,我以 100bp 的间隔预定义了窗口,并且我正在尝试计算 mylist 中的注释覆
由于代码的不同,g++ 处理这种情况的方式是否有所不同?对于初学者来说,这似乎是完全相同的代码。 我应该提一下,这两棵树的规模都很大,每棵树都包含大约十个张量,每个张量的估计元素数为 10^5 左右的
我是一名优秀的程序员,十分优秀!