Как управлять ориентацией экрана для iPhone в веб-приложении

StackOverflow https://stackoverflow.com/questions/1879386

Вопрос

У меня есть очень простая веб-страница, которая использует flot для создания canvas основанный график (аналогичный тому, что SO использует для графика репутации).

В случае дисплея ПК он должен просто выводиться в обычном режиме, при этом ширина (по оси x) должна в 1,6 раза превышать высоту.

Но для iPhone я бы хотел, чтобы вместо переполнения страницы в "книжной" ориентации страница по умолчанию имела альбомную ориентацию, поощряя (или заставляя) пользователя поворачивать свой телефон, чтобы увидеть диаграмму, как это сделали бы пользователи ПК.

Итак, мои вопросы таковы:

1) Есть ли способ (используя CSS, JS или просто теги заголовка HTML) повернуть холст на 90 градусов при обнаружении портретной ориентации?

2) Есть ли вообще способ поворачивать элементы / объекты, независимо от того, кто это просматривает?

3) Есть ли способ избежать поведения iPhone по умолчанию - поворота содержимого при повороте устройства?Очевидно, я хочу, чтобы пользователь поворачивал устройство, увидев, что оно отображается боком, но я не хочу, чтобы график переворачивался и ВСЕ ЕЩЕ был боком, когда они поворачивают телефон, дразня их продолжать переворачивать телефон и никогда не заставлять график оставаться неподвижным.

Спасибо!

Это было полезно?

Решение

Что-то вроде этого.

window.onorientationchange = function() {

  var orientation = window.orientation;
  switch(orientation) {
    case 0:

    document.body.setAttribute("class","portrait");

    break; 

    case 90:

    document.body.setAttribute("class","landscapeLeft");

    document.getElementById("currentOrientation").innerHTML="Now in landscape orientation and turned to the left (Home button to the right).";
    break;

    case -90: 

    document.body.setAttribute("class","landscapeRight");

    document.getElementById("currentOrientation").innerHTML="Now in landscape orientation and turned to the right (Home button to the left).";
    break;
  }
}

Другие советы

1/2) Вы пробовали -web-transform?Видишь это Веб-страница Apple

3) Я думаю, вы не можете запретить автоматическое вращение

Другой вариант - настроить таргетинг на ваш CSS с помощью следующего кода:

/* Portrait */
@media screen and (max-width: 320px){
    /* Place your style definitions here */
}

/* Landscape */
@media screen and (min-width: 321px){
    /* Place your style definitions here */
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top