JavaScript 算法确定平板电脑的方向

2023-11-24

我们正在构建一个为平板电脑开发的 HTML5/JavaScript 应用程序,我们希望以不同的方式在横向和纵向上布局我的屏幕。

最初,我们捕获方向变化通知,并跟踪当前方向(通常报告为 0、90、-90 或 180 度 - 请参阅这个问题)。不幸的是,不同的设备报告不同方向为“0”。该链接认为这是一个错误,但有一些证据表明这是按设计工作的 - 例如,本文表明“横向”是默认方向,并且这些设备在处于横向模式时报告方向为“0”。

接下来,我们尝试只查看实际的屏幕尺寸,假设当宽度大于高度时,我们处于横向模式。但当显示屏幕键盘时,该算法会变得混乱——显示键盘时,会返回可见区域的尺寸。严格来说,当设备处于纵向模式,但屏幕上未被键盘遮挡的部分的宽度大于高度时。

回应这个问题已经相当旧了。这仍然是最佳答案吗?有没有人有一个考虑键盘可见性的好算法?


http://jsfiddle.net/jjc39/

尝试这个:

<span id="orientation">orientation</span>​

$(document).ready(checkOrientation);
$(window).resize(checkOrientation);

function checkOrientation() {
    var orientation = "Portrait";
    var screenWidth = $(window).width();
    var screenHeight = $(window).height();
    if (screenWidth > screenHeight) {
        orientation = "Landscape";
    }
    $("#orientation").html(orientation);
}​
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 算法确定平板电脑的方向 的相关文章

  • 带有选项卡和 ActivityGroup 的后退按钮行为

    我有一个活动 Main 显示如下选项卡 private void initTabs mTabHost getTabHost The activity TabHost Intent intent intent new Intent setCl
  • 如何从 JQuery - IonRangeSlider 获取值?

    我怎样才能得到低值和高值ion rangeSlider http ionden com a plugins ion rangeSlider en html通过单击按钮来组件 这是我的 jQuery 代码
  • 三星 Galaxy Note 上的布局

    我有一个奇怪的问题 只出现在 Samsung Galaxy Note 上 我有横向和纵向布局 正常和大 如下 http developer android com guide practices screens support html h
  • 将图像嵌入 Chrome 扩展程序

    我正在构建一个 Google Chrome 扩展 它将 HTML 注入到真实的网页中 注入还包含图像 现在我想知道如何在扩展中引用图像 到目前为止 我只能在服务器上使用它们来引用它们http example com myimage png
  • Android sqlite 缺少列

    我的 SQLite 数据库缺少一个我知道存在的列 我将无法从 Android 模拟器中提取数据库 因为如果不重写大量代码 就无法使用模拟器填充数据库 logcat 返回sqlite returned error code 1 msg tab
  • 在 Angularjs 中格式化输入值

    我正在尝试编写一个指令 自动格式化数字
  • org.apache.http 软件包在 API 级别 23 中被删除。替代方案是什么?

    在更新到最新的 android API 级别 23 Marshmallow 后 通过 build gradle 添加以下更改后 所有 org apache http 类都不起作用 android compileSdkVersion 23 b
  • 保持 WebSocket 连接处于活动状态

    我正在研究 WebSocket 协议 并尝试在后端使用 Python 实现一个简单的 ECHO 服务 它似乎工作正常 但连接建立后立即断开 这是我的客户
  • 具有 jsonObject 的 android 列表视图

    我正在开展一项活动 该活动请求服务器上的一个 php 文件 此 php 文件将返回给我一个JSONArray having JSONObjects作为它的元素 我明白了jArray并提取其内容 例如所有jsonObjects 每个 json
  • 将 jstring 转换为 QString

    我正在调用一个返回字符串的 Java 函数 QAndroidJniObject obj QAndroidJniObject callStaticObjectMethod
  • 如何使我的网站兼容移动设备和平板电脑? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想让我现有的网站在手机 平板电脑上查看时自动调整 甚至在您在桌面上调整屏幕时自动调整 如果失败的话 如果太难 你有什么建议 我基本上
  • 将 mp3 添加到 ContentResolver

    我知道从您的应用程序下载 mp3 后 您需要将其添加到ContentResolver在音乐播放器上看到它 我正在使用以下代码执行此操作 private void addFileToContentProvider ContentValues
  • 使用backbonejs视图,将“onload”事件附加到图像标签的最佳方法是什么?

    我想在backbonejs 视图中为图像附加一个 onload 事件 我目前将其作为 load img function 包含在 事件 中 但它没有被触发 这样做有什么建议吗 Backbone的事件处理基于delegate https st
  • 使用 JS 从列表中删除最近的 元素的 URL

    所以我有一个网址列表 并且有删除按钮 图像按钮 当点击删除按钮时 按钮旁边的 url 必须从列表中删除 let list const remove document getElementById remove const view docu
  • 在 JavaScript 中将长数字转换为缩写字符串,并有特殊的简短要求

    在 JavaScript 中 如何编写一个函数来转换给定的 编辑 正整数 数字 低于 1000 亿 转换为 3 个字母的缩写 其中 0 9 和 a z A Z 算作一个字母 但点 因为它在许多比例字体中很小 不会 并且会被忽略信函限制条款
  • 如何以编程方式将 CSS 定义应用到整个页面?

    我确信该信息已经存在 但我找不到它 对不起 我想使用 JavaScript 创建 CSS 规则 并将它们应用到整个页面 就像它们位于文档头部的样式元素中一样 我不想通过生成 CSS 文本来实现 我想将规则保留为可以更改的实体 JavaScr
  • 检查用户是否登录 Facebook

    我正在尝试使用 javascript 检查用户是否登录 Facebook 刚刚登录或未登录 与我的应用程序无关 我尝试在 FB init 之后使用以下代码 FB getLoginStatus function response alert
  • 如何强制传单更新地图?

    当我将 Leaflet 与 React 一起使用时 我遇到了问题 据我研究 问题是 Leaflet 也想控制 DOM 渲染 现在 国家将使用与后端信息相对应的特定颜色代码 范围为1 gt 100 正确着色 但是 它每分钟更新一次 更新后 国
  • React.js 的状态基于其他状态

    我遇到了 React js 的一些问题 并且在调用 setState 时状态没有立即设置 我不确定是否有更好的方法来解决这个问题 或者这是否真的只是 React 的一个缺点 我有两个状态变量 其中一个基于另一个 原始问题的小提琴 http
  • SDK管理器不显示示例包选项

    我关注的是安卓安装示例的开发人员链接 http developer android com tools samples index html包裹 但是 当我展开Android平台的包列表时 没有 SDK示例 选项 复选框 可用 为什么 我已

随机推荐

  • 如何删除python3中的b符号

    如何去除bpython3脚本中的符号 import subprocess get data subprocess check output df k awk print 6 shell True data arr get data spli
  • 如何在 JasperReports 中使用条件 TextField?

    我想要一对取决于值的文本字段 并且 y 值应根据空白空间进行调整 当值为 0 我想隐藏文本字段 IE 我想隐藏staticText和textField如果参数red等于 0 并将蓝色值向上移动 在下面的 jrxml 代码中
  • RVM 的 Rails 脚本分段错误

    我遇到分段错误 应该which ruby返回 usr local bin maletor rails generate mailer ContactMailer Users maletor rvm gems ruby 1 9 2 p0 ge
  • Elixir - https URL 的问题

    我是 Elixir 和 Erlang 的新手 在访问 https URL 时遇到一些问题 我已经尝试过 Elixir 特定的HTTP选项和 Erlang 的 inets module 因此 从 iex 控制台 Interactive Eli
  • 性能差异:std::accumulate vs std::inner_product vs Loop

    今天 我想分享一些在我尝试实现这个简单操作时令我震惊的事情 我发现执行相同操作的不同方法 通过使用std inner product 实现谓词并使用std accumulate功能 使用 C 风格的循环 我想通过使用 Quick Bench
  • ggplot2 条形图中的订单条形图

    我正在尝试制作一个条形图 其中最大的条形最接近 y 轴 最短的条形最远 所以这有点像我的桌子 Name Position 1 James Goalkeeper 2 Frank Goalkeeper 3 Jean Defense 4 Stev
  • CKEditor 和转义元素

    我用过CKEditor用于更新CMS我的网站上的内容 我还使用 FontAwesome 其中包括一组精美的图标 可以像这样显示 i class icon envelope i 问题是 CKEditor 逃脱了这个i标签在客户端 我在源模式下
  • html5 window.localStorage.getItem Item 获取以以下开头的键

    我怎样才能使用 window localStorage getItem 指定 localstarage 中以字符串开头的项目 QQ 在我的例子中 密钥可以是 QQ 3位数字 所以我只需要指定它以字符串开头 QQ 您不需要 获取所有项目并单独
  • SSRS在报告中显示没有记录,但查询返回结果

    我有一个关于 SSRS 的问题 我正在使用 MSSQL Server Management Studio 2012 和 BIDS Visual Studio 2008 进行报表设计 我有一个包含一些多值参数的报告和一个存储过程 其中返回记录
  • 数十亿行的最佳数据存储

    我需要能够存储数十亿条记录 一年约 30 亿 月 的少量数据 大约 50 75 字节 唯一的要求是对具有相同 GUID 的所有记录进行快速插入和快速查找 并且能够从 net 访问数据存储 我是一名 SQL Server 人员 我认为 SQL
  • 在 Pyside 中,为什么在处理信号后发出一个 > 0x7FFFFFFF 的整数会导致“OverflowError”?

    我正在尝试使用具有 0 2 32 1 范围内的大整数的信号 槽 我发现了一些奇怪的事情 一旦我发出 gt 7FFFFFFF 边界 我就会抛出 OverflowError 异常after插槽已运行 如果我或 QT 在另一种语言 如 C 或 C
  • webpack html-loaders 小写 Angular 2 内置指令

    我使用 html loader 来加载我的 html 模板 并使用 file loader 来加载模板中的图像 这在开发中运行得很好 但是当我运行 build prod 并运行输出时 我收到模板解析错误 看来所有 Angular2 内置指令
  • 雅虎财经股票报价API

    有没有办法从 yahoo api 获取 json 格式的历史股票价格 我想使用 REST 因为它更轻量 用一个具体的例子来跟进 user586050 的答案 您可以使用YQL此请求的 yahoo finance historical 数据表
  • 动态添加自定义元素到 DOM 后,如何让 Aurelia 渲染我的视图?

    当在 DOM 中创建自定义元素并添加实现 aurelia 框架可绑定的相应视图模型时 我的视图呈现完美 DOM 中的自定义元素如下
  • 是否可以对字符串类型使用两个记录助手?

    我创建这个助手是为了向string type type AStringHelper record helper for string function Invert string overload function InvertMe str
  • 附近连接 2.0 中的错误代码

    我一直在尝试新的安卓 附近连接 v2 0API 我的大多数设备现在可以在大多数时间相互通信 但我也得到了很多错误代码尝试连接时返回 检查status getStatusCode 在我的程序中 我可以看到以下返回码 STATUS ALREAD
  • 如何在 Objective-C 中获取用户的语言环境?

    我正在开发Mac OS X的应用程序 我想根据应用程序用户的语言区域 英语 西班牙语等 更改指示内容 如何获取使用哪种语言的信息 NSLog localeIdentifier NSLocale currentLocale localeIde
  • 为什么 System.Enum 不是值类型?

    我编写了以下代码进行一些测试 输出超出了我的预期 public enum Days Saturday Sunday Monday Tuesday Wednesday Thursday Friday Console WriteLine typ
  • MySQL:如何获取上次插入数据库的时间戳

    如何检查我在数据库中写入的最后一次 时间戳 是什么时候 无论我插入到哪个数据库表中 只需使用这个 SQL SHOW TABLE STATUS 并检查更新时间 column
  • JavaScript 算法确定平板电脑的方向

    我们正在构建一个为平板电脑开发的 HTML5 JavaScript 应用程序 我们希望以不同的方式在横向和纵向上布局我的屏幕 最初 我们捕获方向变化通知 并跟踪当前方向 通常报告为 0 90 90 或 180 度 请参阅这个问题 不幸的是