2010-07-29 58 views
0

我正在加载一个XML文件,里面有多张照片,通过ajax。 的过程我的功能经过是这样的:Ajax在XML中加载图像 - 加载图像和淡入淡出?

打开UL
打开李
打开img标签
设置src为= XML文档中的URL(见下文)
接近img标签
靠近LI
打开LI
打开img标签
设置src到= XML文档中的URL(见下文)
靠近img标签
close LI
close UL

它创建一个新的List项目,并将img标签放入xml文档中的每个单独标签。
和XML是这样的,但更多的条目:

<images><image><url>0.jpg</url></image><image><url>1.jpg</url></image></images> 

以及与图片src涉及我的函数的SNIPPIT是

for (i=0;i<x.length;i++) 
     { 
     txt=txt + "<li>"; 
     xx=x[i].getElementsByTagName("url"); 
     { 
     try 
      {txt=txt + "<img class='fade' src='" + xx[0].firstChild.nodeValue + "' />"; 
    } 
     catch (er) 
      {txt=txt + "<li class='fade'><img src='images/ajax-loader.gif' /></li>";} 
     } 
    txt=txt + "</li>"; 
     } 

我的问题是,我该如何让这些褪色在他们一旦被装载?我应该如何去加入loading.gif的背后?我正在考虑一个simliar函数,它用load.gif作为src编写图像标记,然后在上面的函数中通过id获取每个元素并更改src。会放弃这一点,欢迎任何其他解答。但主要是我需要弄清楚如何淡化这个坏男孩。

感谢

回答

0

与添加图片:

style="display:none;" 

然后当你的函数完成添加图片调用jQuery的褪色:

$('img').fadeIn('slow'); 
0

由于特拉维夫说,你应该设置display: none起初,因为.fadeIn将图像的不透明度从其当前状态动画化为100%。

那么load.gif怎么样。

有很多方法可以去,例如,在firts中,您可以将每张图片的src设置为loading.gif,然后在ajax请求后,您将更改src为图片。在这种情况下,您应该在更改每个src之前设置display: none

或者你可以有其他的img元素(如加载)与绝对位置,例如。在这种情况下,您应该在ajax请求后将其样式更改为display: none

快乐编码;)

0

*Upate* 

您好,感谢您的答案,但我仍然在货架我的大脑了这个问题。 基本上我可以让每个部分独立工作,但不是全部一起工作。

我无法得到我的头的问题是这样的:
为了能够淡入load.gif的ontop,gif需要成为bg图像。
要加载图像,需要ajax请求,图像只有在成功通过ajax加载后才加载到页面上。
我需要load.gif加载页面,这意味着我必须在页面上设置100个LI的空白结构。
然后,我可以使用.html()<img src=[url from xml file] />插入到LI中。是的? 但我遇到的问题是页面冻结,而它正在这样做,它一次加载所有的图像,而不是一次一个。

所以我想,创建一个函数,每个img可以运行onload,它启动ajax脚本来获取下一个图像加载。
我不认为这太棒了。我在编写函数时遇到问题。它
理论云:

image0载荷和淡入,
image0完成加载并激活loadNext()
loadnext(): 的ID增加时,(这是在开始0至100的XML的ATTR)
获取与新标识
相关的url(这是xml中的一个元素)添加到无序列表中,并在image1 onload上运行loadNext()

我不能得到它的工作虽然:( 帮助,请

0

补丁将不会Drupal的工作,但是CDN模块与pressflow

试试这个:

themname_template_preprocess_page(){ 
    //regular expression for CDN call 
} 
+1

不适用于drupal6 – bob 2013-02-21 13:13:55