你好,我想在php中检测ipad的方向,我知道我可以检测iPad,但如何检测方向呢?因为我想在我的画廊中显示x张纵向图片和x张横向图片,所以需要在php中进行检测,而不是在css中。
下面是我用来检测iPad的代码:
if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPad') !== FALSE) {
} else {
}
我在这个网站和Google上搜索了,但是没有找到任何有用的信息可以帮助你。
谢谢。
orientationchanged
事件。可以参考:这里。一种粗暴的方法是通过jQuery将方向更改存储在cookie中,并使用php中的$_COOKIE
变量访问它。
但是,您仍需要JavaScript钩子来检测方向更改并可能重新加载页面。
这不是方向检测而是用户代理检测。它只能检测到正在浏览您页面的浏览器类型。
大家都建议你用 JavaScript 来完成,这完全正确,但我猜你从问题中并没有看到这个选项。
你应该从 PHP 中加载足够的图片(如果不是一个愚蠢的数字,那就全部加载,毕竟它只是一个 URL 字符串),以 JSON(json_encode($array of image URL's to use))格式填充最大尺寸。然后使用 JavaScript 检测方向,并使用正确数量/布局的图像填充页面。
你将在 JavaScript 中拥有一个图像 URL 数组可供选择和动态加载。
使用这段代码可能对您有用
var orient = Math.abs(window.orientation) === 90 ? 'landscape' : 'portrait';
<button onclick="detectIPadOrientation();">What's my Orientation?</button>
<script type="text/javascript">
window.onorientationchange = detectIPadOrientation;
function detectIPadOrientation ()
{
if ( orientation == 0 ) {
alert ('Portrait Mode, Home Button bottom');
}
else if ( orientation == 90 ) {
alert ('Landscape Mode, Home Button right');
}
else if ( orientation == -90 ) {
alert ('Landscape Mode, Home Button left');
}
else if ( orientation == 180 ) {
alert ('Portrait Mode, Home Button top');
}
}
</script>
<link rel="stylesheet" media="all and (orientation:portrait)" href="portrait.css">
<link rel="stylesheet" media="all and (orientation:landscape)" href="landscape.css">
@media all and (orientation:landscape){ .portrait-only {display:none;}}
以在其他情况下隐藏它。 - phihag