我正在为移动设备建立一个网站。有一页特别适合在横屏模式下浏览。
是否有一种方法来检测访问该页面的用户是否在纵向模式下查看它,如果是的话,显示一条消息通知用户该页面在横向模式下查看最好?如果用户已经在横屏模式下查看,则不会出现任何消息。
所以基本上,我想让网站检测视口的方向,如果方向是纵向,然后显示一个警告消息,建议用户这个页面最好在横向模式下查看。
我正在为移动设备建立一个网站。有一页特别适合在横屏模式下浏览。
是否有一种方法来检测访问该页面的用户是否在纵向模式下查看它,如果是的话,显示一条消息通知用户该页面在横向模式下查看最好?如果用户已经在横屏模式下查看,则不会出现任何消息。
所以基本上,我想让网站检测视口的方向,如果方向是纵向,然后显示一个警告消息,建议用户这个页面最好在横向模式下查看。
当前回答
或者你可以用这个…
window.addEventListener("orientationchange", function() {
if (window.orientation == "90" || window.orientation == "-90") {
//Do stuff
}
}, false);
其他回答
有一种方法可以检测用户是否使用screen.orientation将设备切换到竖屏模式
只需使用下面的代码:
screen.orientation.onchange = function () {
var type = screen.orientation.type;
if (type.match(/portrait/)) {
alert('Please flip to landscape, to use this app!');
}
}
现在,当用户翻转设备时,onchange将被触发,当用户使用纵向模式时,警报将弹出。
或者你可以用这个…
window.addEventListener("orientationchange", function() {
if (window.orientation == "90" || window.orientation == "-90") {
//Do stuff
}
}, false);
if(window.innerHeight > window.innerWidth){
alert("Please use Landscape!");
}
jQuery Mobile有一个事件来处理这个属性的变化…如果你想警告如果有人旋转后-定向变化
另外,在谷歌搜索之后,看看窗外。方向(我相信是用度来衡量的…)
编辑:在移动设备上,如果你打开键盘,那么上面可能会失败,所以可以使用屏幕。availHeight和屏幕。availWidth,即使打开键盘也能给出适当的高度和宽度。
if(screen.availHeight > screen.availWidth){
alert("Please use Landscape!");
}
如果您有最新的浏览器窗口。定向可能行不通。在这种情况下,使用下面的代码获取角度
var orientation = window.screen.orientation.angle;
这仍然是一个实验技术,你可以在这里检查浏览器兼容性
在iOS设备上,JavaScript中的window对象有一个orientation属性,可以用来确定设备的旋转。下面显示了值窗口。面向iOS设备(如iPhone, iPad, iPod)在不同方向。
这个解决方案也适用于android设备。我检查了android原生浏览器(互联网浏览器)和Chrome浏览器,甚至是旧版本的浏览器。
function readDeviceOrientation() {
if (Math.abs(window.orientation) === 90) {
// Landscape
} else {
// Portrait
}
}