2009-01-21 48 views
0

問題 基本上,不可能以正確的方式使用帶有背景圖像的全尺寸照片。 不同的分辨率,寬屏幕等等等等即時尋找是一個JS/PHP GD解決方案這個問題。Dynamic backgroundimages PHP GD

技術 從我所聽到的,它會如下所示。 Javascript會查找可用的屏幕大小(瀏覽器窗口)或屏幕分辨率。將此解析爲PHP GD。在FTP上,您將獲得高分辨率圖像(例如1600x1200)。 PHP GD根據JS解析的信息對其進行縮放。 這也必須工作onResize。由於即時'只是'一個簡單的設計師,我缺乏JS/PHP在這個問題上殺了我。

如果任何人都可以幫助我一個合適的解決方案,我很樂意在我的新網站上將它們聯繫起來。提前致謝,並多謝荷蘭。

菲爾

+0

一個與此有關的許多需要注意的地方是,GD可能會很慢,所以你應該設置一些緩存方法,以便在具有相似窗口大小的人獲得已經創建的圖片時。 – 2009-01-21 09:52:41

回答

3

基本上,這是不可能以適當的方式使用的背景圖像海事組織。

我知道這是您的意見,但其他網站似乎不同意您的意見。他們讓它工作。但這可能不是這裏的主要問題。

爲每個用戶調整背景大小,地獄,每個請求如果你沒有緩存,將在納秒內核心你的服務器。 GD的調整是昂貴的,如果這是共享主機,你最終會讓你的網站開始。如果在同一臺服務器上有其他網站,他們會放慢抓取。

即使您能夠將足夠多的煤鏟入服務器,也會造成非常不友好的用戶體驗。瀏覽器不必下載文件,而必須等待PHP生成映像,然後才能下載。

如果我在大屏幕上加載此網站會怎麼樣?我有一個可能的〜3840 * 1200分辨率。即使你沒有擴展它,我也必須下載完整版本。大屏幕尺寸並不意味着我的計算機上有冗餘光纖。

但是,所有這一切說,這當然是可能的。我建議你從jQuery開始。它可以掛鉤到window-load和-resize事件上,動態地改變CSS非常簡單。這些堅韌的細節可以通過幾個簡單的Google代碼實現:「調整圖像大小」,「jquery onresize」和「jquery change background」。

0

您還可以製作幾個CSS樣式表以匹配某些分辨率。這個UNTESTED例子可能會給你一些幫助。

<html> 
    <head> 
    <title></title> 
    <link rel="stylesheet" id="styleSwitch" href="" /> 

    <script type="text/javascript"> 
     function getStyle(){ 
     var theStyleLink = document.getElementById('styleSwitch');­ 

    if (window.innerWidth < 810){ 
     theStyleLink.setAttribute("href", ­ "small-window.css"); 

    } 
    else { 
     theStyleLink.setAttribute("href", ­ "large-window.css"); 

     } 
    } 
    </script> 
</head> 
<body onload="getStyle();"> 

</body> 
</html>