【发布时间】:2013-01-24 07:00:03
【问题描述】:
我需要做的就是将图像定位在其父 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 plugin
像这样,
$(document).ready(function() {
$('#image1').waitForImages(function() {
setPosition(); // without inspectSize()
});
});
它适用于缓存图像,但不适用于非缓存图像。
该函数在 Image1 具有宽度和高度之前被调用。
我应该怎么办?
【问题讨论】:
标签: javascript jquery waitforimages