如何在javascript / jquery中找出ipad是否处于横向/纵向模式?

时间:2010-08-16 17:34:40

标签: javascript jquery ipad landscape portrait

如果ipad处于横向模式,我想添加一个额外的div。 是否有某种if语句可以找到它?

由于

4 个答案:

答案 0 :(得分:6)

jQTouch会这样检查:

orientation = Math.abs(window.orientation) == 90 ? 'landscape' : 'portrait';

http://github.com/senchalabs/jQTouch/blob/master/jqtouch/jqtouch.js

您还可以收听onorientationchange事件

参见上一个回答:Detect rotation of Android phone in the browser with JavaScript

答案 1 :(得分:4)

您可以对文档的宽度进行简单检查。

$(window).width();

您可以将其设置为变量,然后根据iPad的原始分辨率检查变量:纵向为768px x 1024px。

答案 2 :(得分:0)

<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>

答案 3 :(得分:0)

您可以尝试与所有浏览器兼容的解决方案。

以下是orientationchange兼容性图片: compatibility 因此,我创作了一个orientaionchange polyfill,它基于@media属性来修复orientationchange实用程序库 - orientationchange-fix

window.addEventListener('orientationchange', function(){
 if(window.neworientation.current === 'portrait|landscape'){
    // do something……
 } else {
    // do something……
 }
}, false);

然后,您可以按window.neworientation.current检索当前的方向状态,并按window.neworientation.init检索方向的初始状态。