2010-03-09 28 views
1

我需要加载2个或更多的图像离屏,并显示它们只有当他们都加载过渡。jquery嵌套的加载图像

我在与负载()的一些问题 这里是我的功能 它显示的加载消息,当IMG加载它隐藏loadig消息,并调用函数与视觉过渡(transizione(一个div );)

function load_img(sezione) { 
    if (sezione==1) {sfondo = "sfondo2.jpg"; footer = "footer1.jpg";} 
    else if (sezione==2) {sfondo = "sfondo3.jpg"; footer = "footer2.jpg";} 
    else if (sezione==3) {sfondo = "sfondo4.jpg"; footer = "footer3.jpg";} 
    else if (sezione==4) {sfondo = "sfondo5.jpg"; footer = "footer4.jpg";} 

    $("#loading").fadeIn(); 

    $("#sfondo2").load(function() { 
    $("#loading").hide(); 
    transizione(); 
    }).attr('src', 'img/'+sfondo); 

} 

如何修改它以调用2个图像? 我有点困惑与负载()如何工作的图片

感谢

朱塞佩

回答

1

“加载”功能,为图像,用来建立一个事件处理程序。换句话说,它可以让你提供一个函数,当图像完全加载时被调用。

如果你想等待一个以上的图像加载,当他们所有加载,可以想要做的事,你可以设置是这样的:

var $images = $('#image1, #image2'), count = $images.length; 
$images.load(function() { 
    --count; 
    if (count === 0) { 
    // here the count is zero, so all images are ready 
    transizione(); // ? whatever you want 
    } 
}); 

看到了吗?这使得所有图像具有相同的“加载”处理程序,并且它只是倒计时,直到所有不同的图像准备好(因为计数将为零)。

也许我还没有明白你在这里的需求,古瑟波。

+0

只是个人喜好,但我从来不喜欢var $ images = $('#image1,#image2'),count = $ images.length;在var $ images = $('#image1,#image2'); var count = $ images.length; - 分开行。 – 2010-03-09 12:50:40

+0

真 - 这种环境的格式不一定是我在真实代码中所做的。 – Pointy 2010-03-09 13:10:37

+0

这正是我想要做的, ,但我不能让它正常工作, 当你写 var $ images = $('#image1,#image2'),count = $ images.length; 是#image1和#image2 img标签的ID吗? 当我第一次运行该函数时,“count”会返回一些有趣的值,如3或-2,-1 应该以某种方式重置值吗? 谢谢 G – Gusepo 2010-03-09 14:07:30