根据屏幕大小执行PHP
我有一个目录站点,它有一个令人惊叹的主页地图,但不幸的是,它在移动设备上的负载不太好。WordPress主题设置为使用滑块或地图,但我想在移动设备上显示滑块,在桌面上显示地图。我认为这是处理这个问题的代码:根据屏幕大小执行PHP,php,css,wordpress,responsive-design,Php,Css,Wordpress,Responsive Design,我有一个目录站点,它有一个令人惊叹的主页地图,但不幸的是,它在移动设备上的负载不太好。WordPress主题设置为使用滑块或地图,但我想在移动设备上显示滑块,在桌面上显示地图。我认为这是处理这个问题的代码: <?php //////////////////////////////////////// //// WHAT SLIDER ARE WE USING ////////////////////////////////////////
<?php
////////////////////////////////////////
//// WHAT SLIDER ARE WE USING
////////////////////////////////////////
if(ddp('home_slider') == 'Map') {
get_template_part('includes/slider/markup', 'map');
} else {
if(function_exists('putRevSlider')) { putRevSlider(ddp('home_slider_alias')); } ?>
<script type="text/javascript">
jQuery(document).ready(function() { _sf_send_user_to_listings = true; });
</script>
<?php }
?>
jQuery(document).ready(函数(){u sf\u send\u user\u to\u listings=true;});
我知道PHP没有屏幕大小的概念。我还读到,一旦JavaScript或jQuery与PHP混合,服务器端就会全部停止,不再处理PHP也许是我的问题-如果我在移动设备上使用CSS显示滑块,该设备还会在幕后加载地图吗?反之亦然,桌面是否同时加载地图和滑块,但仅向用户显示一个?如果移动设备被迫同时加载这两个文件,则地图问题仍然会导致崩溃。(顺便说一句,开发人员编写了在客户端处理pin和集群的映射,这就是它显然崩溃的原因。)
如果我可以使用CSS实现这一点,我将如何更改上述PHP?我对PHP和服务器端编程非常陌生。我假设ddp与主题设置有关,因为我目前可以选择地图或滑块(不是两者都可以)。第一个选项:实现这一点的一种方法是在请求服务器提供内容之前,使用Ajax通过Javascript检测屏幕大小。您可以使用
screen.availWidth
或screen.availHeight
来检测屏幕大小,并且与css中的@media
查询一样,根据您的操作步骤来执行
这里有一个链接,指向您要检查的标准屏幕尺寸:
Javascript使用正确的逻辑后,您将使用Ajax加载内容
如果您不喜欢AJAX,或者您的内容对于AJAX交换来说太重-第二个选项:使用Javascript脚本创建一个中间html页面,该脚本执行上述相同的逻辑,然后将用户重定向到相应的页面:完整地图页面或移动版本。这种方法可能是更好的选择,因为用户不必等待Ajax操作。
以下是使用Javascript重定向的链接:
Php是服务器端,这意味着您无法检测到类似的东西。也许你可以做一些黑客来根据标题提供不同的css,但相信我,最好的选择是最小宽度选择器。css@media值得研究。但如果我使用最小宽度选择器,它是否仍然在幕后同时加载这两个选择器?我无法在移动设备上加载地图,因为它会使浏览器崩溃。谷歌搜索——我能想到的唯一一件事就是需要大量依赖JavaScript才能运行。让它来计算屏幕大小(不知怎么的)和每个“模块”的AJAX。如果我是弗兰克,那真是个黑客,但如果你能修复地图崩溃的问题,你就不需要麻烦了。为什么它会崩溃呢?对于第二个选项,您还可以传递指示适当屏幕大小的url参数,以便您的php使用这些参数来提供适当的内容。如果你只想有一个php文件而不是两个不同的文件,这很有用。或者你也可以使用媒体屏幕大小的css,通过将一个像素的图像加载到背景中来调用特定的url。