在web开发中我们有时需要通过js去预加载图片,按照平常的写法:?
var img=new Image();?
img.src="xxxx图片路径";?
然后alert(img.height);?
这种写法在chrome上就不适用了,在chrome中弹出0.?
为了修正这种异常可以采用下面的写法?
function loadImage(url) {?
??? var img = new Image();?
??? img.src = url;?
??? if (img.complete) {?
??????? alert(img.width);?
??????? return;?
??? }?
??? img.onload = function () {?
??????? callback.call(img);?
?????????? alert(this.height);?
??? };?
};?
这种写法就可以解决这个这一问题了。?
jquery写法?
$("img").load(function(){?
if (this.complete||this.readyState=="complete") {?
??????? $(this).css({"margin-left":(120-this.width)/2,"margin-top":(80-this.height)/2});?
??????? return;?
??? }?
})
img.src="xxxx图片路径";?
然后alert(img.height);?
这种写法在chrome上就不适用了,在chrome中弹出0.?
为了修正这种异常可以采用下面的写法?
function loadImage(url) {?
??? var img = new Image();?
??? img.src = url;?
??? if (img.complete) {?
??????? alert(img.width);?
??????? return;?
??? }?
??? img.onload = function () {?
??????? callback.call(img);?
?????????? alert(this.height);?
??? };?
};?
这种写法就可以解决这个这一问题了。?
jquery写法?
$("img").load(function(){?
if (this.complete||this.readyState=="complete") {?
??????? $(this).css({"margin-left":(120-this.width)/2,"margin-top":(80-this.height)/2});?
??????? return;?
??? }?
})