我有以下简单的预加载功能,它将图像“src”属性替换为另一个图像(动画GIF“加载”)。问题仅出现在IE中:如果“加载”GIF小于实际图像src,则会调整大小。例如,如果我有一个方形的100px图像并预加载它,图像暂时被50x50px的动画GIF代替。当原始图像完全加载时,它不会以其大小显示,而是以较小的50px显示。如果需要,这是代码
_preload = function(url, placeholderUrl) {
var img = new Image();
loading = true;
var placeholder = new Element("img", {
src: placeholderUrl
});
img.placeholder = placeholder;
img.onload = function(evt) {
this.placeholder.src = this.src;
loading = false;
}
img.src = url;
return placeholder;
}
在这里你可以看到视觉错误
答案 0 :(得分:2)
您应该能够在回调函数中调整图像的宽度/高度:
img.onload = function(evt) {
this.placeholder.src = this.src;
this.placeholder.width = this.width;
this.placeholder.height = this.height;
loading = false;
}
答案 1 :(得分:0)
我想用 img (dom中的img-elements)替换占位符,而不是简单地更改占位符的src-attribute,应解决此问题。< / p>