【问题标题】:initial window.orientation always 0 on Windows PhoneWindows Phone 上的初始 window.orientation 始终为 0
【发布时间】:2015-07-02 08:12:27
【问题描述】:

我正在尝试在我的网站上检测设备方向。

orientationchange 事件后,方向值似乎没问题。

$(window).on("orientationchange",function(event){alert(window.orientation);}) 

但问题是页面启动时的初始 window.orientation 值始终为 0,即使设备处于横向位置也是如此。

$(document).ready(function(){alert(window.orientation);});

延迟一段时间后它不会改变(我已经检查过了)它只有在 orientationchange 事件之后才会改变为正确的值。

有什么方法可以在页面启动时获得正确的方向?

【问题讨论】:

    标签: javascript jquery html windows-phone-8 mobile


    【解决方案1】:

    看起来除了 chrome for android 之外的任何东西实际上都不支持该属性:https://developer.mozilla.org/en-US/docs/Web/API/Screen/orientation

    根据你想要做什么,你可以使用 CSS 规则吗?

    @media only screen and (max-width: 999px) {
      /* rules that only apply for canvases narrower than 1000px */
    }
    
    @media only screen and (device-width: 768px) and (orientation: landscape) {
      /* rules for iPad in landscape orientation */
    }
    
    @media only screen and (min-device-width: 320px) and (max-device-width:    480px) {
      /* iPhone, Android rules here */
    }
    

    【讨论】:

    • 它在 Windows Phone 中受支持 - 当我旋转时,方向值是正确的,在任何设备旋转之前都会出现问题。我不能使用 CSS 规则,因为它们指的是屏幕尺寸,而不是 window.orientation 值本身,这对于某些设备可能会有所不同,即使两者都处于横向位置,例如pioul.fr/…
    • @pawlakppp 如果你真的阅读了你自己链接的文章,它指出 window.orientation 不应该被信任,它还提供了不同浏览器如何在相同情况下给出不同结果的示例
    • 如果您想根据 window.orientation 获得横向/纵向位置,则不应信任它。我不要那个。我使用来自 javascript 的加速度计值,并使用基于 window.orientation 的相对 x 或 y 加速度值。这就是我需要它的原因。
    【解决方案2】:

    您是否尝试过这样处理问题:

    $(document).ready(function(){
        $(window).load(function(){
            alert(window.orientation);
        });
    });
    

    您也可以手动获取设备的方向:

    $(document).ready(function(){
        alert((($(window).width()>$(window).height()) ? 90 : 0));
    });
    

    【讨论】:

    • 是的,我尝试了类似的方法,但它根本没有改变。我无法手动获取方向,因为当 window.width 高于 window.height 时,某些设备的方向 = 0 - 例如 Galaxy Tab (pioul.fr/…)
    【解决方案3】:

    我刚刚在 Windows Phone 上对其进行了测试,并且可以正常工作。您使用的是哪款手机/操作系统/浏览器?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2014-01-09
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多