2009-01-21 49 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>