【发布时间】:2019-04-12 05:56:53
【问题描述】:
我正在编写一些 jQuery 代码,我想检测移动设备的方向是纵向还是横向。
我已经尝试过 while 语句,但它们不断发送我的测试警报,但无济于事。
我的 jQuery:
function test() {
if (window.matchMedia("(orientation: portrait)").matches) {
alert('You are in portrait!');
}
else if (window.matchMedia("(orientation: landscape)").matches) {
alert('You are in landscape!');
}
}
test();
目前,它会在您加载到页面后立即运行,以便我可以测试结果。我想做的是检测设备是否正在使用横向并更改一些 CSS(如果是)。问题是,当我将设备变成横向时,它无法正常检测到它。如果我在设备处于该方向时刷新页面,它会检测纵向或横向。我想要发生的事情是,一旦我将设备置于横向模式,它就会一直检测到我希望它将 CSS 更改为适合横向的 CSS,当它返回纵向时,我希望它改回原始的 CSS。但在这种情况下,为了测试和你们,我希望它在每次更改设备方向时都能正确提醒,而不是在我以该方向刷新页面时。
【问题讨论】:
-
你可以使用监听器,我从未尝试过,但我发现了这个stackoverflow.com/questions/5284878/…
-
非常感谢!我已经尝试了几个小时,甚至搜索类似的东西都没有出现。它完全按照我想要的方式工作!
-
我实际上只是发现它不能 100% 工作。它检测 -90 的横向和 0 或 180 的纵向,但不检测 90 的横向,它也只检测 90 的纵向。
标签: javascript jquery