Jquery 移动站点-仅强制横向/无自动旋转

Jquery 移动站点-仅强制横向/无自动旋转,jquery,css,mobile,landscape,autorotate,Jquery,Css,Mobile,Landscape,Autorotate,我有一个具有移动样式表的站点: <link rel="stylesheet" href="css/mobile.css" media="handheld"> 我还使用jQuery检查移动设备并相应地更改功能 但我想知道是否有一种方法可以强制横向定向并禁用自动旋转?CSS或jQuery解决方案都可以 谢谢 您不能在网页中强制定向,但可以在portarit模式下建议或阻止内容 我写了一封信 在html文件中添加一个div元素 <div id="block_land">T

我有一个具有移动样式表的站点:

<link rel="stylesheet" href="css/mobile.css" media="handheld">

我还使用jQuery检查移动设备并相应地更改功能

但我想知道是否有一种方法可以强制横向定向并禁用自动旋转?CSS或jQuery解决方案都可以


谢谢

您不能在网页中强制定向,但可以在portarit模式下建议或阻止内容

我写了一封信

在html文件中添加一个div元素

<div id="block_land">Turn your device in landscape mode.</div>
然后添加一个litle javascript来检测方向

function testOrientation() {
  document.getElementById('block_land').style.display = (screen.width>screen.height) ? 'none' : 'block';
}
别忘了在onload和onorientationchange中测试方向,可能在您的body标签中

<body onorientationchange="testOrientation();" onload="testOrientation();">


请告诉我此解决方案是否适合您。

您不能在网页中强制定向,但可以在portarit模式下建议或阻止内容

我写了一封信

在html文件中添加一个div元素

<div id="block_land">Turn your device in landscape mode.</div>
然后添加一个litle javascript来检测方向

function testOrientation() {
  document.getElementById('block_land').style.display = (screen.width>screen.height) ? 'none' : 'block';
}
别忘了在onload和onorientationchange中测试方向,可能在您的body标签中

<body onorientationchange="testOrientation();" onload="testOrientation();">


让我知道此解决方案是否适合您。

使用媒体查询测试方向,在纵向样式表中隐藏所有内容并显示一条消息,说明应用程序仅在横向模式下工作

<link rel="stylesheet" type="text/css" href="css/style_l.css" media="screen and (orientation: landscape)">
<link rel="stylesheet" type="text/css" href="css/style_p.css" media="screen and (orientation: portrait)">


我认为最好的做法是使用媒体查询来测试方向,在纵向样式表中隐藏所有内容并显示一条消息,说明应用程序仅在横向模式下工作

<link rel="stylesheet" type="text/css" href="css/style_l.css" media="screen and (orientation: landscape)">
<link rel="stylesheet" type="text/css" href="css/style_p.css" media="screen and (orientation: portrait)">


我认为最好的方法是脚本,这样当用户改变时,它也会改变。我对此进行了修改,以便在纵向模式下旋转页面主DIV,强制用户切换。除非他们想歪着头:

<script type="text/javascript">
    (function () {
        detectPortrait();
        $(window).resize(function() {
            detectPortrait("#mainView");
        });


        function detectPortrait(mainDiv) {
            if (screen.width < screen.height) {
                $(mainDiv).addClass("portrait_mode");
            }
            else {
                $(mainDiv).removeClass("portrait_mode");
            }
        }
    })();
</script>
<style type="text/css">
    .portrait_mode {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
    }
</style>

(功能(){
detectPortrait();
$(窗口)。调整大小(函数(){
detectPortrait(“主视图”);
});
功能检测端口RAIT(mainDiv){
if(屏幕宽度<屏幕高度){
$(mainDiv).addClass(“纵向模式”);
}
否则{
$(mainDiv).removeClass(“纵向模式”);
}
}
})();
.U模式{
-webkit变换:旋转(90度);
-moz变换:旋转(90度);
-o变换:旋转(90度);
-ms变换:旋转(90度);
变换:旋转(90度);
}

我认为最好的方法是使用脚本,这样当用户改变时,它也会改变。我对此进行了修改,以便在纵向模式下旋转页面主DIV,强制用户切换。除非他们想歪着头:

<script type="text/javascript">
    (function () {
        detectPortrait();
        $(window).resize(function() {
            detectPortrait("#mainView");
        });


        function detectPortrait(mainDiv) {
            if (screen.width < screen.height) {
                $(mainDiv).addClass("portrait_mode");
            }
            else {
                $(mainDiv).removeClass("portrait_mode");
            }
        }
    })();
</script>
<style type="text/css">
    .portrait_mode {
        -webkit-transform: rotate(90deg);
        -moz-transform: rotate(90deg);
        -o-transform: rotate(90deg);
        -ms-transform: rotate(90deg);
        transform: rotate(90deg);
    }
</style>

(功能(){
detectPortrait();
$(窗口)。调整大小(函数(){
detectPortrait(“主视图”);
});
功能检测端口RAIT(mainDiv){
if(屏幕宽度<屏幕高度){
$(mainDiv).addClass(“纵向模式”);
}
否则{
$(mainDiv).removeClass(“纵向模式”);
}
}
})();
.U模式{
-webkit变换:旋转(90度);
-moz变换:旋转(90度);
-o变换:旋转(90度);
-ms变换:旋转(90度);
变换:旋转(90度);
}

我尝试了以下代码,它强制浏览器使用纵向模式:

<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0" />


此代码已在iPhone和其他移动设备上进行了测试。

我尝试了以下代码,它强制浏览器使用纵向模式:

<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0" />


此代码已在iPhone和其他移动设备上进行了测试。

强制横向定向的简单方法是在css代码中设置最小最大宽度,请尝试使用此代码

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation:portrait) { 
body {
-webkit-transform: rotate(90deg);
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
top: 0;
left: 0; 
}}

希望能解决您的问题。

强制横向定位的简单方法是在css代码中设置最小最大宽度,请尝试使用此代码

@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) and (orientation:portrait) { 
body {
-webkit-transform: rotate(90deg);
width: 100%;
height: 100%;
overflow: hidden;
position: absolute;
top: 0;
left: 0; 
}}

希望能解决您的问题。

因此我尝试了类似的解决方案,但遇到的问题是有几个人的方向被锁定。所以,他们不得不解锁真的很烦人。理想情况下,页面只会显示在横向视图中(就像许多游戏应用程序一样)。我将研究使用CSS旋转来解决这个问题。所以我尝试了一个类似的解决方案,但我遇到的问题是有几个人的方向被锁定了。所以,他们不得不解锁真的很烦人。理想情况下,页面只会显示在横向视图中(就像许多游戏应用程序一样)。我们将研究使用CSS旋转来解决这个问题。这肯定会破坏任何JS动画和页面的移动响应。它会给开发者带来更多的问题,不能被认为是一个修复方法。@WissamEl Kik它仍然能满足OP的要求。事实上,OP的要求也会破坏手机的响应能力,所以你不能因此而责怪这个答案!但它并不真正需要JavaScript;用
方向:肖像
媒体查询触发此操作也会起作用。这肯定会破坏任何JS动画和页面的移动响应。它会给开发者带来更多的问题,不能被认为是一个修复方法。@WissamEl Kik它仍然能满足OP的要求。事实上,OP的要求也会破坏手机的响应能力,所以你不能因此而责怪这个答案!但它并不真正需要JavaScript;用
方向:肖像
媒体查询触发此操作也会起作用。对不起,先生,我认为该代码只会阻止用户放大或缩小。在iPhone4S中的Safari和Android 4.3中的Chrome上进行了测试,横向和纵向模式仍然是可能的。对不起,先生,我认为代码只能防止用户放大或缩小。在iPhone4S上的Safari和安卓4.3上的Chrome上进行了测试,横向和纵向模式仍然是可能的。