2011-12-18 104 views
1

我想在我的网站中使用this gallery。唯一的问题是,点击旁边加载图片时,需要很长时间。当用户点击图片放大图片时,我想预先载入下两张图片。在jQuery图库中预加载图像

我碰到过this solution,但它是手动编码图像名称,但我的图像是动态加载的。有什么其他方式可以做到吗?

回答

1

这是一个简单的解决方案。您可以将点击事件添加到拇指,以便单击它时预加载下三张图像。一旦你在单独的图像导航下一个图像预加载的某些方面仍然会进行,虽然制定了,但希望这将HEP你有..

$("#content img").on("click",function(){ // use .live instead if you are using an older version of jQuery 
    var next = $(this).next(); 
    for (var i = 0; i < 3; i++) 
    { 
     var img = new Image(); 
     img.src = next.attr("alt"); 
     next = next.next(); 
    } 
}); 
+0

感谢您的回复。这给了我一个未定义的错误。 – input 2011-12-18 23:36:51

+0

经过一些调整后,这工作。非常感谢! – input 2011-12-19 00:12:35

+2

@ fuz3d酷!听到那个消息很开心。对不起,我没有看到你的第一篇文章...我的猫睡着了,我很快就跟上了。 O_O – 2011-12-19 00:41:54

0

如果你的图像存储在一个mysql中,你可以使用你发现的解决方案,通过一些修改,从图像名称的sql查询中添加一个json编码。传递信息到jQuery的预加载

require_once('JSON.php'); 
    $json = new Services_JSON(); 
    $out = $json->encode($query) 
1

你可以使用你所提到的解决方案,你只需要提取src属性画廊的图片:

preload($('#gallery-images img').map(function() { return this.src; })); 

这实际上将调用带有预紧功能所需的数组。