在对旧('12)问题的更新中,我认为这可以帮助很多人!
我还没有找到锁定设备旋转的真正方法,但想出了一个完美的替代方案,我也见过一些人这样做。
选项 A.一个简单的警报
通过使用简单的 jQuery 脚本,您可以检测设备的方向。
if(window.innerHeight > window.innerWidth){
alert("Please use Landscape!");
}
好吧,一个简单的警报很容易,但通知可以更好!
选项 B.一个漂亮的图像通知
(截至 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;
}
});
这将仅在设备方向更改为横向时显示通知。