2012-01-27 39 views
0

在我的网站上,我有一个更新部分,它将更新(画廊)分组到他们自己的div中。每个div都被隐藏加载。他们选择一个部分,并扩大显示新的画廊。PHP:在div展开之前不要加载图像?

这一切工作正常。但是,它会加载页面加载中的所有图像,这会导致小时玻璃比我喜欢的时间长。在div可见后,有没有办法让图像加载?

编辑:

去与:

$(function() { 
     $('.collapse img').attr('src', function(index, src) { 
     return this.getAttribute('data-src'); 
     }); 
    }); 

崩溃是具有图像的div名称。这怎么可以改变只改变当前div中的图像?所有折叠的div都具有相同的名称。但是,当展开时,我希望它只加载那一个div中的图像。现在,一旦展开其中一个,它将加载所有折叠的div中的所有图像。

回答

3

你的div在启动时不应该包含图像。如果用户扩展您的div,您可以通过JavaScript加载图像。

例子:

function expandDiv(idOfDivElement) { 
    divObj = document.getElementById(idOfDivElement); 
    var imageObj = document.createElement('img'); 
    imageObj.setAttribute('src', 'path/example_image.jpg'); 
    divObj.appendChild(imageObj); 
    // your expand div code here 
} 

你可以推进这一功能,并添加第二个参数,将图像URL。如果你想加载多个图像,或者是一个数组/逗号分隔的字符串。

0

加载图像的过程取决于浏览器。您应该使用JavaScript加载该内容,例如ajax。

0

您可以从ajax加载图像(在展开的div内)... 只需使div可见,然后调用ajax即可获取图像。然后使用.innerHtml()或者如果您使用jQuery,请使用.html()将图像放入展开的div中。

在这种情况下,您必须在ajax页面中构建html。它只会将html添加到eexpanded div。

这种方式更快地加载页面。

请给予反馈。

+0

为什么heck应该使用ajax ......只要图像不是由脚本动态呈现或类似的东西,绝对不需要使用ajax。如果他知道图像路径,他可以使用JavaScript添加图像元素。 – Grrbrr404 2012-01-27 07:55:42

+1

他可以像你说的那样做,如果图像路径是静态的并且他知道它们。在这种情况下,你的答案是绝对完美的,没有任何竞争。但是,如果图像来自数据库呢?我只是试图让它们变成动态的,就像从数据库或文件夹中获取...... – 2012-01-27 08:21:28

相关问题