/ Published in: JavaScript
wrote this snippet as a necessity to preload many images without writing same code all the time in JS...
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
function displayElem(elem) { if(document.getElementById(elem) != null) { document.getElementById(elem).style.display = 'block'; } else { window.setTimeout(function() { displayElem(elem); }, 80); } } function preloadSuzukies(suz_obj) { var smatch = suz_obj.constructor.toString().match(/([^\(\)\s]+)\(\)/); switch(smatch[1]) { case "String": objImg = new Image(); objImg.src = suz_obj; break; case "Object": var objArray = []; for(var i in suz_obj) { objArray.push(new Image()); objArray[objArray.length - 1].src = suz_obj[i][0]; if(typeof suzuki_imgs[i][1] !== "undefined") { objArray[objArray.length - 1].onload = (function(iter) { displayElem(suz_obj[iter][1]); })(i); } } break; case "Array": for(var i = 0; i < suz_obj.length; i++) { objImg = new Image(); objImg.src = suz_obj[i]; } break; default: alert("wrong argument is given for image preloading"); break; } } var suzuki_imgs = { img1: ['images/suzuki_car.png', 'car_bg'], img2: ['images/get_spec_hover.png'] }; preloadSuzukies(suzuki_imgs);