我知道这个话题已经讨论了很多,但我找不到任何对我有用的解决方案。所以,我的代码大致是:
var img =me.images[curID]
var f = function() {
var i = $(img);
img.onload = null;
$(img).unbind('load');
var iH = img.height; /*works for Firefox, Safari, Opera, Chrome*/
var iW = img.width;
if (jQuery.browser.msie) {
/*nothing works*/
iH = i.width(); /* returns 0*/
iH = i.attr('height'); /*returns undefined*/
iH = img.height; /*returns wrong 120:30 px instead of 1000:410 */
/*once page is reloaded - everything is fine */
}
}
src = img.src;
if ( (!img.complete) ||
(typeof img.naturalWidth != 'undefined' && img.naturalWidth == 0)
) { /*WAIT FOR LOAD*/
img.src = "";
$(img).load(f);
img.onload = f;
img.src = src;
} else { /*SHOW */
f.apply(img);
}
我做错了什么?
p / s /图像在淡入淡出的div内,所以我基本上想在fadeIn之前调整图像大小。
EDIT1:我阵列上的一些信息:
....
this.slides = this.slidesContainer.children();
this.n = this.slides.length;
for (var i=0;i<this.n;i++) {
var im = this.slides.eq(i).find('img:first')[0];
var sr = im.src;
this.images[i] = im;
this.imagesSrc[i] = sr;
}
...
EDIT2:我重写了一段代码(添加了onload),现在它到处都是(IE / FF / Opera / Safari / ...) 程序流程(IE8)如下:
答案 0 :(得分:0)
如果您正在使用jQuery尝试使用jQuery获取图像的方式。
而不是var img =me.images[curID]
只做:
var img = $('img#imageID');
//get height:
img.height()
//get width:
img.width();