2016-02-12 3 views
0

В принципе, я делаю подходящую игру со столами различной ориентации. Если браузер изменен на пейзаж или мобильное устройство повернуто, я делаю его горизонтальной таблицей. Если портрет, то вертикальная таблица. Мне нужно прослушиватель событий, чтобы определить, портрет или пейзаж.Обнаружить изменение высоты и ширины окна с помощью прослушивателя событий

Предоставлено 2 проблемы, которые могут быть разрешены вместе или с использованием отдельного кода.

Задача 1

Я просмотра моей страницы на рабочем столе и изменить размер моего окна таким образом, что ширина = 768px и высота = 767px, а затем активировать режим ландшафта.

Есть ли слушательсобытия, которое определяет, следует ли отображать портретную или альбомную версию страницы просто по

if(window.innerHeight > window.innerWidth) { 
    portrait = true; 
    /*display to portrait version of page*/ 
} 
else { 
    portrait = false; 
    /*display to landscape version of page*/ 
} 

или я должен создать приемник пользовательских событий и в этом случае хау ?

Задача 2

Я просмотр моей страницы на мобильном устройстве. Когда он обнаруживает, что он в ландшафтном режиме, поворачивая, активируйте ландшафтный режим.

Я считаю, что это может быть решена с помощью

window.addEventListener("orientationchange", function() { 
/*display landscape/portrait version*/ 
}, false); 

ответ

0

В зависимости от того, что вы на самом деле пытаетесь сделать после того, как вы определить, является ли пользователь находится в ландшафтном режиме или не существует несколько различных реализаций:

Detect ли пользователь или пейзаж Портрет

function readDeviceOrientation() {   
    if (Math.abs(window.orientation) === 90) { 
     // Landscape 
    } else { 
     // Portrait 
    } 
} 

Регулировка укладки с помощью ориентации медиа-запрос

/* For portrait, we want the tool bar on top */ 
@media screen and (orientation: portrait) { 
    #toolbar { 
     width: 100%; 
    } 
} 

/* For landscape, we want the tool bar stick on the left */ 
@media screen and (orientation: landscape) { 
    #toolbar { 
     position: fixed; 
     width: 2.65em; 
     height: 100%; 
    } 

    p { 
     margin-left: 2em; 
    } 

    li + li { 
     margin-top: .5em; 
    } 
} 

Использование JQuery

$(window).resize(function() { 
    if (Math.abs(window.orientation) === 90) { 
     // Do Landscape 
    } else { 
     // Do Portrait 
    } 
}; 

Прислушайтесь изменения ориентации

screen.addEventListener("orientationchange", function() { 
    console.log("The orientation of the screen is: " + screen.orientation); 
}); 
+0

Я считаю, что это только решает вторую проблему, потому что «orientationchange» связано с мобильными устройствами и, когда они поворачиваются по часовой стрелке/против часовой стрелки. Как вы выполняете прослушивание событий в jquery, а не css, когда я вручную изменяю размер моего браузера? В принципе, я делаю соответствующую игру со столами. Если размер браузера изменен до ландшафта, я делаю его горизонтальной таблицей. Если портрет, то вертикальная таблица. Поэтому мне просто нужен прослушиватель событий, чтобы обнаружить портрет или пейзаж. – CHEWWWWWWWWWW

+0

@CHEWWWWWWWWWW Я добавил пример привязки события jQuery к изменению размера браузера. При запуске этого события вы можете проверить, находится ли устройство/браузер в альбомной ориентации. Получает ли это то, что вы ищете? – hagmic

+0

OMG. ЖИЗНЬ. Наверное, это то, что я ищу! Благодаря! Рад, что я узнал что-то новое сегодня! – CHEWWWWWWWWWW

Смежные вопросы