在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;
}
})