Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据屏幕大小执行PHP_Php_Css_Wordpress_Responsive Design - Fatal编程技术网

根据屏幕大小执行PHP

根据屏幕大小执行PHP,php,css,wordpress,responsive-design,Php,Css,Wordpress,Responsive Design,我有一个目录站点,它有一个令人惊叹的主页地图,但不幸的是,它在移动设备上的负载不太好。WordPress主题设置为使用滑块或地图,但我想在移动设备上显示滑块,在桌面上显示地图。我认为这是处理这个问题的代码: <?php //////////////////////////////////////// //// WHAT SLIDER ARE WE USING ////////////////////////////////////////

我有一个目录站点,它有一个令人惊叹的主页地图,但不幸的是,它在移动设备上的负载不太好。WordPress主题设置为使用滑块或地图,但我想在移动设备上显示滑块,在桌面上显示地图。我认为这是处理这个问题的代码:

 <?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。