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

bch*_*mes 8 javascript android

我们正在构建一个针对平板电脑开发的HTML5/JavaScript应用,我们希望在横向和纵向方面对屏幕进行不同的布局.

最初,我们正在捕捉方向变化通知,并跟踪当前方向(通常报告为0,90,-90或180度 - 请参阅此问题).不幸的是,不同的设备将不同的方向报告为"0".该链接认为这是一个错误,但有一些证据证明这是按设计工作的 - 例如,本文建议"横向"是默认方向,并且这些设备在横向保持时会报告方向为"0"模式.

我们接下来试着只看实际的屏幕尺寸,假设当宽度大于高度时,我们处于横向模式.但是当显示屏幕键盘时,此算法会混淆 - 当显示键盘时,将返回可见区域的尺寸.严格来说,当设备处于纵向模式时,但是屏幕未被键盘遮挡的部分比它高.

这个问题的回答很古老.这仍然是最好的答案吗?有没有人有一个好的算法,考虑键盘可见性?

Pat*_*son 4

http://jsfiddle.net/jjc39/

\n\n

尝试这个:

\n\n
<span id="orientation">orientation</span>\xe2\x80\x8b\n\n$(document).ready(checkOrientation);\n$(window).resize(checkOrientation);\n\nfunction checkOrientation() {\n    var orientation = "Portrait";\n    var screenWidth = $(window).width();\n    var screenHeight = $(window).height();\n    if (screenWidth > screenHeight) {\n        orientation = "Landscape";\n    }\n    $("#orientation").html(orientation);\n}\xe2\x80\x8b\n
Run Code Online (Sandbox Code Playgroud)\n