iPad разве инициировал, не изменяет размер события, идущего от вертикального до горизонтали?

Кто-либо заметил это поведение? Я пытаюсь записать сценарий, который инициирует после изменения размер. Это хорошо работает на нормальных браузерах, хорошо работает на iPhone, но на iPad, только инициирует движение от горизонтального до вертикальной области просмотра, не наоборот.

Вот код:

$(window).resize( function() {

    var agent=navigator.userAgent.toLowerCase();
    var is_iphone = ((agent.indexOf('iphone') != -1));
    var is_ipad = ((agent.indexOf('ipad') != -1));

    if(is_iphone || is_ipad){
        location.reload(true);
    } else {     
        /* Do stuff. */
    };
});
35
задан dclowd9901 16 May 2010 в 20:43
поделиться

3 ответа

Если я вас правильно понял, вы хотите что-то сделать, когда пользователь наклоняет iPad. Вот, пожалуйста:

window.onorientationchange = function(){

    var orientation = window.orientation;

    // Look at the value of window.orientation:

    if (orientation === 0){

        // iPad is in Portrait mode.

    }

    else if (orientation === 90){

        // iPad is in Landscape mode. The screen is turned to the left.

    }


    else if (orientation === -90){

        // iPad is in Landscape mode. The screen is turned to the right.

    }

}

The left picture shows portrait mode, the right one landscape mode

46
ответ дан 27 November 2019 в 06:59
поделиться

Единственное, что я смог найти в apple :

Safari на iPad и Safari на iPhone не имеют окон изменяемого размера. В Safari на iPhone и iPad размер окна устанавливается равным размеру экрана (без элементов управления пользовательского интерфейса Safari) и не может быть изменен пользователем. Чтобы перемещаться по веб-странице, пользователь изменяет уровень масштабирования и положение области просмотра, когда они дважды касаются или ущемляют, чтобы увеличить или уменьшить масштаб, или касаясь и перетаскивая для панорамирования страницы. Когда пользователь изменяет уровень масштабирования и положение области просмотра, он делает это в видимой области содержимого фиксированного размера (то есть в окне). Это означает, что элементы веб-страницы, положение которых «зафиксировано» относительно области просмотра, могут оказаться за пределами области просматриваемого содержимого, за пределами экрана.

Я понимаю, что "работает на iPhone" ... но, может быть, это уже не так? Это может быть изменение в OS / Mobile Safari с момента выпуска последней общедоступной версии iPhone OS (приведенная выше документация относится к марту 2010 г.).

Я собираюсь пометить этот вопрос, добавив к нему iPhone, может быть, кто-нибудь из разработчиков версии 4.0 OS сможет это проверить? Если дело в том, что он был удален, это должна быть ошибка, которая должна быть зарегистрирована / исправлена ​​до того, как она будет запущена ... Я не уверен, как обстоят дела с этим с Apple.

1
ответ дан 27 November 2019 в 06:59
поделиться

Я думаю, что вам нужно использовать iPad Orientation CSS, который выглядит следующим образом:

<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css" />
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css" />

Кроме того, событие orientationchange срабатывает при изменении ориентации, согласно iPad web development tips.

Все вместе это должно дать вам достаточно инструментов, чтобы справиться с изменением.

14
ответ дан 27 November 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: