JavaScript实现图片的预加载

jopen 10年前

由于图片较大,在加载js脚本之前,最好实现图片的预加载。

function preLoadImg(){        var img = new Image();        img.src = url;    }

 

这样子就实现了传入图片的url,图片实现预加载

 

但是此时图片的width 和length等皆为空,进行下一步处理。

function preLoadImg(){        var img = new Image();        img.src = url;        img.onload = function(){   //图片异步加载完成,抵用callback函数            callback.call(img);           //callback函数this指针切换成img        }    }

下一步考虑ie的兼容性

function preLoadImg(url,callback){        var img = new Image();        img.src = url;        if(img.complete){       //图片已经存在于浏览器的缓存中了  并且complete兼容所有浏览器。            callback.call(img);            return;        }        img.onload = function(){   //图片异步加载完成,抵用callback函数            callback.call(img);           //callback函数this指针切换成img        }    }