42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
// (function($) {
 | 
						|
//   var cache = [];
 | 
						|
//   // Arguments are image paths relative to the current page.
 | 
						|
//   $.preLoadImages = function() {
 | 
						|
//     var args_len = arguments.length;
 | 
						|
//     for (var i = args_len; i--;) {
 | 
						|
//       var cacheImage = document.createElement('img');
 | 
						|
//       cacheImage.src = arguments[i];
 | 
						|
//       cache.push(cacheImage);
 | 
						|
//     }
 | 
						|
//   }
 | 
						|
// })(jQuery)
 | 
						|
 | 
						|
 | 
						|
(function($) {
 | 
						|
  $.preloadimages = function (arr){
 | 
						|
    var newimages=[], loadedimages=0
 | 
						|
    var postaction=function(){}
 | 
						|
    var arr=(typeof arr!="object")? [arr] : arr
 | 
						|
    function imageloadpost(){
 | 
						|
        loadedimages++
 | 
						|
        if (loadedimages==arr.length){
 | 
						|
            postaction(newimages) //call postaction and pass in newimages array as parameter
 | 
						|
        }
 | 
						|
    }
 | 
						|
    for (var i=0; i<arr.length; i++){
 | 
						|
        newimages[i]=new Image()
 | 
						|
        newimages[i].src=arr[i]
 | 
						|
        newimages[i].onload=function(){
 | 
						|
            imageloadpost()
 | 
						|
        }
 | 
						|
        newimages[i].onerror=function(){
 | 
						|
            imageloadpost()
 | 
						|
        }
 | 
						|
    }
 | 
						|
    return { //return blank object with done() method
 | 
						|
        done:function(f){
 | 
						|
            postaction=f || postaction //remember user defined callback functions to be called when images load
 | 
						|
        }
 | 
						|
    }
 | 
						|
  }
 | 
						|
})(jQuery) |