我目前正在开发一个对所有设备都相对平等的网站;桌面电脑移动。我正在使用%,因为我认为这是最好的选择。
它基于肖像模式。如果您将设备更改为横向,整个网站看起来像一个胖侏儒。
所以我想知道:是否有可能锁定一个网站,一直以纵向显示它?
就此而言,我的意思是:设备旋转锁定。并不是说,当去景观时,网站返回到肖像,而在景观。 (我已经在StackOverflow上看到了一些代码。)
Check my site at: http://prototyping.iscs.nl/mobiel.html
供参考:)
提前致谢
答案 0 :(得分:13)
在更新旧问题时,我认为这可以帮助很多人!
我还没有找到锁定设备旋转的真正方法,但想出了一个完美的替代方案,我也见过一些人也这样做。
通过使用简单的jQuery脚本,您可以检测设备的方向。
if(window.innerHeight > window.innerWidth){
alert("Please use Landscape!");
}
嗯,一个简单的警报很容易,但通知可以更好!
(更新截至04-2018 :(因为我刚看到我的帖子,我想到了更简单的事情......)使用媒体查询。几乎与下面相同,但不是使用Javascript,使用css,默认隐藏元素并在方向为横向时显示→@media(orientation:landscape){...})
只需在方向更改时显示的页面中添加fixed
元素即可。
HTML
<div class="turnDeviceNotification"></div>
<强> CSS 强>
.turnDeviceNotification {
position:fixed;
top: 0;
left:0;
height:100%;
width:100%;
display: none;
}
您可以使用文本更新此元素,或者只需通过
将其连接到背景图像.turnDeviceNotification {
background-image:url('../images/turnDevice.jpg');
background-size:cover;
}
只需在图片文件夹中添加漂亮的背景,例如下面的图片。
注意到该对象有display: none
?这是因为它甚至在纵向模式下也能显示出来。现在,您需要做的就是使用下面的脚本,因此该对象仅以横向模式显示。
jQuery(window).bind('orientationchange', function(e) {
switch ( window.orientation ) {
case 0:
$('.turnDeviceNotification').css('display', 'none');
// The device is in portrait mode now
break;
case 180:
$('.turnDeviceNotification').css('display', 'none');
// The device is in portrait mode now
break;
case 90:
// The device is in landscape now
$('.turnDeviceNotification').css('display', 'block');
break;
case -90:
// The device is in landscape now
$('.turnDeviceNotification').css('display', 'block');
break;
}
});
仅当设备方向更改为横向时,才会显示通知。
答案 1 :(得分:3)
不可能。锁定旋转是设备设置:http://support.apple.com/kb/HT4085 如果没有被设备锁定,浏览器将会旋转,因为您的内容在浏览器中,所以内容也会旋转。 也许视口将有助于解决您的问题:&lt; meta name =“viewport”content =“width = device-width”/&gt;“。我看到你错过了那个元标记。
答案 2 :(得分:1)
我认为不可能,但有几种方法可以解决
js方式:window.DeviceOrientationEvent
css方式
@media (orientation: landscape) {
body { background-color: black; }
}
答案 3 :(得分:1)
@media screen and (min-width: 320px) and (max-width: 767px) and (orientation: landscape) {
html {
transform: rotate(-90deg);
transform-origin: left top;
width: 100vh;
overflow-x: hidden;
position: absolute;
top: 100%;
left: 0;
}
}
答案 4 :(得分:0)
目前尚不可能。但是另一种方法是
使用CSS , 媒体查询有助于横向查看正常工作。
bash
非常重要,好像您没有指定它一样。对于某些移动设备,如果您专注于表单字段,则会打开键盘 >,这基本上改变了视口的高度,基本上触发了景观媒体查询。因此,min-aspect-ratio对于景观媒体查询非常重要。
min-aspect-ratio: 13/9
使用JavaScript ,我们可以使用screen.availHeight,因为键盘显示时屏幕高度不会改变。还必须添加更多检查以允许桌面视图跟随。
@media only screen and (min-width: 320px) and (max-width: 1023px) and (min-aspect-ratio: 13/9) and (orientation: landscape) {
// Landscape view properties
}