iOS Safari не вызывает событие «поворот»

0

Я пытаюсь использовать различные методы для запуска события при повороте устройства. Он работает на всех браузерах Android. Он работает во всех браузерах iOS, кроме Safari. Я пробовал 1 iPhone и 2 iPads, все на iOS7, и просто не могу запустить это событие.

Я пытался:

JQuery:

$( window ).resize(function() {

$(window).bind("resize", function(){


js:

document.addEventListener("orientationchange", updateOrientation);

window.onresize = function(event) {

Не повезло, не повезло. Все они работают во всех браузерах, но не работают в iOS Safari. Самое странное, что иногда оно срабатывает, возможно, один или два раза, за 20 поворотов. В других случаях никакого события вообще нет. Что происходит? У кого-нибудь есть опыт? Я что-то делаю неправильно, или это странная ошибка?

Теги:
safari

1 ответ

1

Мальчик, поддержка типа orientChange - это супер изворотливость по сравнению с мобильными браузерами. Поэтому, чтобы не беспокоиться об этом, я просто следовал этому простому гарантированному подходу, который вообще не полагался на это событие:

function findOrientation()
{
    if(window.innerHeight > window.innerWidth){
        return 'portrait';
    } else {
        return 'landscape';
    }
}

function checkOrientation() {   //to be run every X seconds by setInterval below
    var currentPortraitOrLandscape = findOrientation();
    if(currentLandscapeOrPortrait != window.landscapeOrPortrait) {
         doMyOrientationChangeCode();
         }
    }

window.portraitOrLandscape = findOrientation();

setInterval(checkOrientation, 800);  //check around once a second if they have reoriented

Ещё вопросы

Сообщество Overcoder
Наверх
Меню