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();">
让我知道此解决方案是否适合您。使用媒体查询测试方向,在纵向样式表中隐藏所有内容并显示一条消息,说明应用程序仅在横向模式下工作
<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度);
}
我尝试了以下代码,它强制浏览器使用纵向模式:
<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旋转来解决这个问题。这肯定会破坏任何JS动画和页面的移动响应。它会给开发者带来更多的问题,不能被认为是一个修复方法。@WissamEl Kik它仍然能满足OP的要求。事实上,OP的要求也会破坏手机的响应能力,所以你不能因此而责怪这个答案!但它并不真正需要JavaScript;用
方向:肖像
媒体查询触发此操作也会起作用。对不起,先生,我认为该代码只会阻止用户放大或缩小。在iPhone4S上的Safari和安卓4.3上的Chrome上进行了测试,横向和纵向模式仍然是可能的。
@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;
}}