Подтвердить что ты не робот

Начальное окно. ориентация всегда 0 на Windows Phone

Я пытаюсь определить ориентацию устройства на моем веб-сайте.

Ориентировочное значение выглядит нормально после события orientationchange.

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

Однако проблема - это начальное значение window.orientation при запуске страницы, которое всегда равно 0, даже когда устройство находится в ландшафтном положении.

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

Он не изменяется после некоторой задержки (я это проверил), он изменяется на правое значение только после события orientationchange.

Есть ли способ получить правильную ориентацию при запуске страницы?

4b9b3361

Ответ 1

Похоже, что это свойство фактически не поддерживается ничем, кроме хром для 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 */
}

Ответ 2

Вы пытались подойти к проблеме следующим образом:

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

в качестве альтернативы вы можете получить ориентацию устройства вручную:

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

Ответ 3

Я только что протестировал его на Windows Phone и там он работает. Какой телефон/os/браузер вы используете?