我需要做的就是将图像定位在其父 div 的中心。
首先,我试过这个。
$(document).ready(function() {
$('#image1').css({
'top': 50%, 'left': 50%,
'margin-top': (-$('#image1').height()/2) + 'px',
'margin-left': (-$('#image1').width()/2) + 'px'
});
});
它失败的原因是 $('#image1').height() 和 width() 在完全下载之前给出了 0。
所以我试图继续检查图像的大小,直到它具有特定的宽度和高度。
像,
function inspectSize() { return ($('#image1').width() != 0); }
function setPosition() {
if(!inspectSize()) {
setTimeout(setPosition, 1000);
return;
}
$('#image1').css({
'top': 50%, 'left': 50%,
'margin-top': (-$('#image1').height()/2) + 'px',
'margin-left': (-$('#image1').width()/2) + 'px'
});
}
$(document).ready(setPosition);
还是不行。
因为 $('#image').width() 在 IE8 中下载之前返回 28px(顺便说一下,IE7 很好)
所以我终于尝试了这样的waitForImages jQuery 插件
,
$(document).ready(function() {
$('#image1').waitForImages(function() {
setPosition(); // without inspectSize()
});
});
它适用于缓存图像,但不适用于非缓存图像。在Image1具有宽度和高度
之前调用该函数。
我该怎么办?