gpt4 book ai didi

javascript - 如何在 jQuery 中正确检测移动设备的方向?

转载 作者:行者123 更新时间:2023-12-02 23:51:07 25 4
gpt4 key购买 nike

我正在编写一些 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。但在这种情况下,为了测试和你们,我希望它在每次更改设备方向时正确发出警报,而不是在我以该方向刷新页面时发出警报。

最佳答案

我实际上只是想出了一种使用 switch 方法的方法。由于某种原因情况-90 || 90:工作不正常所以我只是为每个正确的方向做了一个像这样

function doOnOrientationChange() {
switch(window.orientation) {
case 90:
alert('landscape');
break;
case -90:
alert('landscape');
break;
case 0:
alert('portrait');
break;
case 180:
alert('portrait');
break;
default:
break;
}
}

window.addEventListener('orientationchange', doOnOrientationChange);

// Initial execution if needed
doOnOrientationChange();

谢谢大家的帮助!这适用于我必须测试的所有设备!

关于javascript - 如何在 jQuery 中正确检测移动设备的方向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55645319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com