Начальное окно. ориентация всегда 0 на Windows Phone
Я пытаюсь определить ориентацию устройства на моем веб-сайте.
Ориентировочное значение выглядит нормально после события orientationchange
.
$(window).on("orientationchange",function(event){alert(window.orientation);})
Однако проблема - это начальное значение window.orientation при запуске страницы, которое всегда равно 0, даже когда устройство находится в ландшафтном положении.
$(document).ready(function(){alert(window.orientation);});
Он не изменяется после некоторой задержки (я это проверил), он изменяется на правое значение только после события orientationchange
.
Есть ли способ получить правильную ориентацию при запуске страницы?
Ответы
Ответ 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/браузер вы используете?