我知道有大量的jQuery预加载线程,我已经阅读了大部分内容但仍然无法找到我的问题的解决方案.
我有一个“停止动画”动画,它是通过jQuery使用队列和基于图像的顺序命名构建的.我不想在加载所需的所有图像之前运行此动画. Spriting目前不是一种选择,因为不同的产品类型有不同的动画,并且所有图像都已由客户生成.
我目前的预装代码如下:
function preloadImages($img,$frames){ var $imgsrc = $img.attr("src"); var $getext = $imgsrc.split('.'); var $ext = $getext[1]; var $exploded = $getext[0].split('_'); var $newsrc = ""; for (var i=1; i <= $frames; i++){ for (var j=0; j < $exploded.length-1; j++){ $newsrc = $newsrc + $exploded[j] + "_"; } $newsrc = $newsrc + i + "." + $ext; var image_preload = new Image(); image_preload.src = $newsrc; } }
其中frames是序列中的总图像数(此阶段为6或12),图像的命名约定如下:
Brand_Product_Category_ProductID_SequenceNo.jpg.
我正在尝试做的是没有加载持有起始图像的div,直到所有这些图像都已使用下面的文档准备好的预览片进行预加载,但这似乎没有正常工作,即持有者显示在预先加载所有必需的图像之前,动画不能顺利运行.
$(".holder").hide(); preloadImages($(".holder img"),6); $(".holder").fadeIn("slow");
我想我需要某种回调,但我不确定如何实现它.