2014-06-15 92 views
-4

我有一個令人驚歎的主頁地圖的目錄網站,但不幸的是它在移動設備上的加載效果不佳。 WordPress主題設置爲使用滑塊或地圖,但我想在移動設備和桌面上的地圖上顯示滑塊。我認爲這是操縱此代碼:根據屏幕大小執行PHP

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

    ?> 

我知道PHP沒有屏幕大小的概念。我還會讀一次JavaScript或jQuery與PHP混合在一起,服務器端會一起停止並且不能再處理更多的PHP。 也許是我的問題 - 如果我使用CSS在移動設備上顯示滑塊,設備是否仍然在幕後加載地圖?反之亦然,桌面會加載地圖和滑塊,但只顯示一個給用戶?如果移動設備被強制加載,則地圖問題仍然會發生崩潰。 (順便說一句,開發人員編寫地圖來處理引腳和集羣在客戶端,所以這就是爲什麼它顯然崩潰。)

如果我可以使用CSS來完成此操作,我將如何去改變上述PHP?我對PHP和服務器端編程都很陌生。我假設ddp與主題設置有關,因爲我目前能夠選擇地圖或滑塊(不是兩者)。

+3

Php是服務器端,意思是你不能檢測到這樣的事情。也許有幾個黑客可以根據標題爲不同的css服務,但相信我,最好的選擇是最小寬度選擇器。 – ScottMcGready

+1

CSS @media值得一看。 –

+0

但是,如果我使用最小寬度選擇器,它是否仍然在幕後加載?我無法在移動設備上加載地圖,因爲它會使瀏覽器崩潰。 – user3696333

回答

0

第一個選項:可以實現的一種方法是使用Ajax在向服務器請求內容之前使用Javascript檢測屏幕大小。您可以使用screen.availWidthscreen.availHeight來檢測屏幕大小,並且像您在css中使用@media查詢一樣,根據您的操作過程採取行動。

下面是標準的屏幕尺寸,你會檢查鏈接: CSS Tricks = Media Queries for Standard devices

後你的Javascript使用正確的邏輯,你可以使用Ajax加載您的內容。

如果AJAX是不是你的東西或者你的內容是太重了Ajax的交流 - 第二個選項:有使用JavaScript腳本,做上述規定的同樣的邏輯,然後中介HTML頁面將用戶重定向到相應的頁面:完整的地圖頁面或移動版本。這種方法可能是更好的選擇,因爲用戶不必等待Ajax操作。 下面是用Javascript重定向的鏈接: Redirecting with Javascript

+0

對於第二個選項,您還可以傳遞指示正確屏幕大小的url參數,以便您的php使用它來提供正確的內容。如果你只想要一個php文件而不是兩個不同的文件,這很有用。 – user3718546

+0

或者,您也可以使用CSS與媒體屏幕大小並通過將一個像素圖像加載到背景中來調用特定的URL。 – Gellweiler

相關問題