交换不同大小的图像[Javascript vs IE]

时间:2010-10-25 23:52:31

标签: javascript internet-explorer

我有以下简单的预加载功能,它将图像“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;
}

alt text 在这里你可以看到视觉错误

2 个答案:

答案 0 :(得分:2)

您应该能够在回调函数中调整图像的宽度/高度:

img.onload = function(evt) {
  this.placeholder.src = this.src;
  this.placeholder.width = this.width;
  this.placeholder.height = this.height;
  loading = false;
}

示例:Resizing image onLoad

答案 1 :(得分:0)

我想用 img (dom中的img-elements)替换占位符,而不是简单地更改占位符的src-attribute,应解决此问题。< / p>