Как выяснить, находится ли iPad в режиме ландшафта/портрета в JavaScript/jQuery?
-
29-09-2019 - |
Вопрос
Я хочу добавить дополнительный div, если iPad находится в режиме ландшафта. Есть ли какое -то заявление, которое могло бы это найти?
Спасибо
Решение
jqtouch проверяет это так:
orientation = Math.abs(window.orientation) == 90 ? 'landscape' : 'portrait';
http://github.com/sechalabs/jqtouch/blob/master/jqtouch/jqtouch.js.
Вы также можете послушать события OnoRientationChange
Смотрите предыдущий ответ: Обнаружение вращения телефона Android в браузере с JavaScript
Другие советы
Вы можете сделать простую проверку на ширину документа.
$(window).width();
Вы можете установить его в переменную, а затем проверять переменную против нативного разрешения iPad: 768px x 1024px в портрете.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Rotation Test</title>
<link type="text/css" href="css/style.css" rel="stylesheet"></style>
<script src="js/jquery-1.5.min.js" type="text/javascript"></script>
<script type="text/javascript">
window.addEventListener("resize", function() {
// Get screen size (inner/outerWidth, inner/outerHeight)
var height = $(window).height();
var width = $(window).width();
if(width>height) {
// Landscape
$("#mode").text("LANDSCAPE");
} else {
// Portrait
$("#mode").text("PORTRAIT");
}
}, false);
</script>
</head>
<body onorientationchange="updateOrientation();">
<div id="mode">LANDSCAPE</div>
</body>
</html>
Вы можете попробовать решение, совместимое со всеми браузером.
Ниже приведено orientationchange
совместимость рис:Поэтому я автор orientaionchange
Polyfill, это основано на атрибуте @media для исправления ориентационной учетной библиотеки утилиты -Ориентация
window.addEventListener('orientationchange', function(){
if(window.neworientation.current === 'portrait|landscape'){
// do something……
} else {
// do something……
}
}, false);
А потом вы можете получить текущее состояние ориентации window.neworientation.current
и начальное состояние ориентации window.neworientation.init
.