我知道有大量的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");
我想我需要某种回调,但我不确定如何实现它.