window.orientation 在 iOS 和 Android 中返回不同的值

2023-11-23

我正在测试我的网络应用程序iPad (Safari 浏览器) and 三星 Tab 2 (默认浏览器). The window.orientationchange在两个设备中返回不同的值。

$(document).ready(function() {
            window.addEventListener("orientationchange", centerLoginBox);
            window.addEventListener("load", centerLoginBox);
        });

        function centerLoginBox() {
            if (window.orientation == 90 || window.orientation == -90) { //Landscape Mode
                $('#loginbox').css('margin-top', '20%');
                alert(window.orientation);
            }
            else if (window.orientation == 0 || window.orientation == 180) { //Portrait Mode
                $('#loginbox').css('margin-top', '40%');
                alert(window.orientation);
            }

在选项卡 2 中,警报会抛出“0”和“180”景观模式以及值“90”和“-90”portrait mode(iPad 中的行为正好相反).

这是 iOS 和 Android 中的某种设计差异吗?这个问题的通用解决方案是什么?


好吧,这就是我所做的。我查询了用户代理信息并检查了设备是否基于 Android。如果是这样,请更改条件窗口方向适用于纵向和横向模式。

CODE

function centerLoginBox() {
        var ua = navigator.userAgent.toLowerCase();
        var isAndroid = ua.indexOf("android") > -1; // Detect Android devices
        if (isAndroid) {
            //window.orientation is different for iOS and Android
            if (window.orientation == 0 || window.orientation == 180) { //Landscape Mode
                $('#loginbox').css('margin-top', '20%');
            }
            else if (window.orientation == 90 || window.orientation == -90) { //Portrait Mode
                $('#loginbox').css('margin-top', '40%');
            }
        }
        else {
            if (window.orientation == 90 || window.orientation == -90) { //Landscape Mode
                $('#loginbox').css('margin-top', '20%');
            }
            else if (window.orientation == 0 || window.orientation == 180) { //Portrait Mode
                $('#loginbox').css('margin-top', '40%');
            }
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

window.orientation 在 iOS 和 Android 中返回不同的值 的相关文章

  • 将数字限制为段的最优雅的方法是什么?

    比方说x a and b是数字 我需要限制x到段的边界 a b 换句话说 我需要一个钳位功能 https math stackexchange com q 1336636 clamp x max a min x b 有人能想出一个更易读的版
  • 我们可以在 android studio 中拥有没有 app 文件夹的项目,并将所有内容(java/res/etc)放在根目录中吗

    我想知道在 Android studio 中是否可以有没有应用程序模块 应用程序或任何其他名称 的 android 项目 意味着我可以在项目本身的根目录中创建包和资源 而不是使用应用程序模块 编辑 结构看起来像 MyApp idea gra
  • Facebook LoginActivity 未正确显示

    我有一个使用 Facebook 登录的应用程序 我有 FacebookSDK 并且使用 com facebook LoginActivity 问题是 在 10 英寸平板电脑上 当显示软键盘时 活动无法正确显示 我使用的是 Samsung G
  • javascript onclick 进入新窗口

    这是我的代码
  • backbone.js:视图中影响集合中不同模型的按钮

    我刚刚开始使用backbone js 到目前为止 我真的很喜欢它 我有这样的事情 ModelA ModelB ViewA ViewB ModelA 持有 ModelB 的集合 如何使用按钮构建模型 B 的视图 单击该按钮会更改集合中下一个
  • 在部分渲染时执行 JavaScript

    我有一些 JavaScript 代码 我想在用户单击其文件夹之一后执行 它会触发 show 操作和 show js erb 从而呈 现部分内容 Show js erb 当用户单击其文件夹之一时触发 如下所示 body append 它成功注
  • onTouchEvent()中如何区分移动和点击?

    在我的应用程序中 我需要处理移动和单击事件 一次点击是由一个 ACTION DOWN 操作 多个 ACTION MOVE 操作和一个 ACTION UP 操作组成的序列 理论上 如果您收到 ACTION DOWN 事件 然后收到 ACTIO
  • Skrollr 添加空白

    我已经尝试了一切 我在谷歌上阅读了 4 5 页试图找到适合我的修复程序 已经筋疲力尽了 即使我使用 skrollr 示例 我的问题仍然存在 不是说他们做错了什么 我知道我只是没有正确理解它 因此 我上传了一个演示 仅在移动设备上展示这个尴尬
  • 使用 Javascript 检测 Pepper (PPAPI) Flash

    我们使用的是专有的文档查看器 它与某些 Chrome 版本中的 Pepper 版本的 Flash 配合得不太好 所以我希望能够检测到它并重定向到不同格式的相同内容 由于这个版本似乎落后于 NPAPI 版本 所以我一直在使用闪光检测 http
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 如何在android中录制音频时暂停背景音乐

    我正在 Android 中开发一个音频记录应用程序 因此 如果设备音乐播放器中已播放任何背景音乐 则应在开始录制之前暂停该背景音乐 并且每当录制停止或暂停时 背景音乐都应恢复 播放录制的音频时也应该如此 有人可以帮我解决这个问题吗 提前致谢
  • 如何使用 HTML5 Javascript Canvas 获取三个碰撞形状的交集并删除不碰撞的部分?

    我最近专门针对 KonvaJs 发布了类似的问题here https stackoverflow com questions 64603077 how can i get the intersection of three shapes c
  • 应用未能及时恢复

    我在一个非常具体的场景中遇到 未能及时恢复 崩溃 我认为与看门狗相关 仅在从后台恢复时 并且仅在进入后台后在很短的时间内执行此操作 a最多几秒钟 这似乎是相关的崩溃日志 Incident Identifier E30F2238 5B15 4
  • 如何使用 afnetworking 在后台上传任务

    我正在尝试使用 AFNetworking 上传大文件 并在应用程序处于后台时继续上传 我可以很好地上传文件 但是当我尝试使用后台配置时 应用程序崩溃并显示以下堆栈跟踪 异常 EXC BAD ACCESS 代码 1 地址 0x8000001f
  • 将 javascript 变量作为参数传递给 @url.Action()

    是否可以将javascript变量作为参数传递给 url Action 因为据我所知可能存在服务器和客户端问题 我的要求是我必须根据过滤器下载文件 并进行ajax调用不适用于下载文件 所以我对 url Action 进行了编码 但无法实现这
  • WebView 在某些设备上如果不长按则不会滚动

    我有一个 WebView 设置如下 the web view mWebView WebView findViewById R id webView push the url on to the web view mWebView loadU
  • iOS 对 Google 云消息传递的支持

    我在谷歌的开发者控制台中看到 GCM 允许为 iOS 生成 API 密钥 我在网上搜索了有关如何在 iOS 应用程序中通过 GCM 实现推送通知的任何类型的文档 但没有找到答案 真的有可能在 iOS 应用程序中使用 GCM 实现推送通知 j
  • 基于BluetoothChat示例通过蓝牙套接字发送文件

    大家好 根据我之前问的一个问题 我已经能够将文件转换为其他字节数组 以便使用以下写入方法 public void sendFile Log d TAG sending data InputStream inputStream null Ur
  • 将一维数组转换为二维数组[重复]

    这个问题在这里已经有答案了 我正在开发一个程序 我必须将文本文件中的值读入一维数组 我已经成功获取该一维数组中的数字 m1 1 2 3 4 5 6 7 8 9 但我希望数组是 m1 1 2 3 4 5 6 7 8 9 您可以使用此代码 co
  • 下标:使用字符串枚举访问我的字典值

    我想做类似的事情 使用字符串枚举访问我的字典值 我试图重载字典的下标但没有成功 访问字典 let district address JsonKeys district 其中 JsonKeys 是 enum JsonKeys String c

随机推荐

  • Math.round(num) 与 num.toFixed(0) 和浏览器不一致

    考虑以下代码 for var i 0 i lt 3 i var num i 0 50 var output num Math round num num toFixed 0 alert output 在 Opera 9 63 中我得到 0
  • 适用于 Visual Studio 2012 更新 3 的 MySQL 连接器

    自从我安装了 Visual Studio 2012 的 mysql 连接器 6 7 4 和 Update 3 以来 MySQL 连接器就从连接管理器对话框中消失了 这是一个正在运行的项目 因此数据源配置是正确的 但是当我打开现有的 edmx
  • ASP.NET 页面上的多种语言(英语、法语)

    我只是想知道在网页上处理多种语言的最佳方法是什么 我应该在负载中创建一个事件 将所有控件的标签更改为适当的语言文本 还是有更好的方法 我正在使用 NET框架 谢谢 对于 ASP NET 请使用资源文件 这将使您能够提供多语言功能 并且可以添
  • 如何让脚本执行等待jquery加载

    我遇到一个问题 页面加载速度太快 jquery 在被后续脚本调用之前尚未完成加载 有没有办法检查jquery是否存在 如果不存在 请稍等片刻 然后重试 为了回应下面的答案 评论 我发布了一些标记 情况 asp net母版页和子页 在母版页中
  • 如何找到多项式的最佳次数?

    我是机器学习的新手 目前陷入了困境 首先 我使用线性回归来拟合训练集 但得到非常大的 RMSE 然后我尝试使用多项式回归来减少偏差 import numpy as np from sklearn linear model import Li
  • Angular:从 sessionStorage 恢复范围

    我试图在页面刷新时从 sessionStorage 检索搜索和过滤数据 sessionStorage restorestate 返回未定义 有人知道为什么吗 app run function rootScope rootScope on r
  • 如何使用 Hogan.JS 从外部文件加载模板?

    I use Hogan JS作为 JavaScript 模板库 它应该从外部文件加载 JavaScript 模板 人们或许可以在外部 JavaScript 文件中外包多个模板 有谁知道这是怎么做到的吗 我有以下代码示例
  • 为什么带有“track by”的 Angular ng-options 无法通过 id 选择

    我有一组使用 ng options 显示的对象 并使用 id 设置 ng model 如果我添加track by在上面 该项目无法选择 如果不添加 则工作正常 为什么 以下代码 angular module myApp controller
  • 错误:Access-Control-Allow-Headers 不允许请求标头字段 Content-Type

    我使用vS2012创建了一个mvc4 web api项目 我使用以下教程来解决跨源资源共享 http blogs msdn com b carlosfigueira archive 2012 07 02 cors support in as
  • TCP接收数据

    如果我在 TCP 中发送 1000 字节 是否能保证接收者 一起 收到全部 1000 字节 或者也许他首先只会收到 500 个字节 然后他会收到其他字节 EDIT 问题来自应用程序的角度 如果 1000 字节在到达应用程序之前被重新组装成单
  • 保存可在任何网站上编辑的内容所做的更改

    以下代码允许任何网站暂时完全可编辑 document body contentEditable true 如果我想使用此方法保存对特定网站所做的设置 如何使用 Javascript 和 PHP 如果需要 实现此目的 以便下次访问此 URL
  • 如何更改 VS Code 中的装订线宽度?

    如何使排水沟宽度更大 我想要它是当前宽度的 4 5 倍 请参见下图 宽度是一个生成的动态值 直接在 VScode 中通过多次测量得出 看here了解那里发生了什么 改变这一点并非易事 您必须自己深入研究代码并做好可能产生不良影响的准备 有一
  • 如何制作 Android 应用程序的评论副本?

    有人要求我提供一些我编写的 Android 应用程序的评论副本 这很棒 但我不愿意将完整的应用程序提供给任何人 我想做一个限时版本 可以工作两周左右 然后就放弃了 做到这一点最简单的方法是什么 我自己还没有对此进行测试 但我认为理论上 如果
  • 是否存在遵循本福德定律的随机数分布?

    Python 有多种方法来生成不同分布的随机数 请参阅的文档random module 不幸的是 如果没有适当的数学背景 特别是考虑到所需的参数 它们就不太容易理解 我想知道这些方法是否能够产生服从分布的随机数本福德定律 以及什么参数值是合
  • 在 iPad 上使位于文本框上的图像可点击(为 iOS 创建 HTML5 搜索输入类型)

    我正在尝试模拟 HTML5input type search 使用 JavaScript 我的目标是做这样的事情 首先 我将说明为什么我不直接使用 HTML5 搜索输入类型 对于 iPad 上述输入类型显示圆角文本框 本机搜索输入框所需的所
  • 将绘图保存为封装后记 (.eps) 时,R 丢失信息

    Lyx 和 Latex 可以很好地处理 eps 图像 但是 当我从 Rstudio 导出带有平滑曲线的散点图时 点会丢失 而绘图仅包含曲线 我尝试过的两种保存方法是 在 Rstudio 中 从图像字段的下拉菜单中选择 导出 并另存为 eps
  • 如何在 bash 中转义反引号

    我很长时间以来都在试图逃避 bash 中的反引号 我尝试使用 进行转义 但它不起作用 bash 中是否可以逃避反引号 示例代码 I hello pdf var1 cat lt
  • 在 F# 中实现队列类型

    我正在尝试在 F 中实现一个队列 到目前为止 这就是我所拥有的 但我认为它的行为更像是一个堆栈 type a queue NL Que of a a queue let enque m function NL gt Que m NL Que
  • appsettings.json 中 IncludeScopes 的 JSON 验证失败

    我正在使用 ASP NET Core 2 1 为什么我得到Expression must be of type object for IncludeScopes in my appsettings json file 下面是显示警告所需的
  • window.orientation 在 iOS 和 Android 中返回不同的值

    我正在测试我的网络应用程序iPad Safari 浏览器 and 三星 Tab 2 默认浏览器 The window orientationchange在两个设备中返回不同的值 document ready function window