Все, что мне нужно сделать, это найти изображение в центре родительского элемента 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 () возвращает 28px перед загрузкой в IE8 (кстати, IE7 был в порядке)Итак, я наконец-то попробовал плагин waitForImages jQuery вот так,
$(document).ready(function() {
$('#image1').waitForImages(function() {
setPosition(); // without inspectSize()
});
});
Он отлично работает с кэшированными изображениями, но не работает с некешированными изображениямиФункция вызывается до того, как Image1 имеет ширину и высоту.Что я должен делать?