Я пытаюсь выяснить, как изменить встроенную веб-страницу, когда пользователь поворачивает их телефон от портрета до альбомного режима - в основном для загрузки представления, которое лучше подходит для более широкого формата экрана. Действительно ли это возможно обойтись без вызова новой страницы с сервера, т.е. управлять им из самого CSS/Javascript?
Спасибо!
Вы можете использовать свойство window.orientation
. Его значение - это степень использования текущего режима просмотра. Вот краткий пример:
function updateOrientation()
{
var orientation=window.orientation;
switch(orientation)
{
case 0:
break;
case 90:
break;
case -90:
break;
}
}
Вы можете использовать эту функцию для этого события:
window.onorientationchange=updateOrientation;
Надеюсь, что это поможет!
Мобильный браузер Safari поддерживает событие orientationchange
а также свойство orientation
окна, поэтому вы можете сделать что-то вроде:
window.onorientationchange = function() {
switch(window.orientation) {
case 0: // Portrait
case 180: // Upside-down Portrait
// Javascript to setup Portrait view
break;
case -90: // Landscape: turned 90 degrees counter-clockwise
case 90: // Landscape: turned 90 degrees clockwise
// Javascript to steup Landscape view
break;
}
}
Я бы добавил перевернутое, потому что в руководстве по человеческому интерфейсу iPad говорится, что вы должны поддерживать все ориентации, поэтому я ожидаю, что Safari на iPad (и, возможно, будущие версии iPhone) будут поддерживать это.
Лучше не устанавливать свойство onorientationchange
напрямую. Вместо этого используйте следующее:
window.addEventListener('orientationchange', function (evt) {
switch(window.orientation) {
case 0: // portrait
case 180: // portrait
case 90: // landscape
case -90: // landscape
}
}, false);