私がする必要があるのは、親 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は大丈夫
でした
)
$(document).ready(function() {
$('#image1').waitForImages(function() {
setPosition(); // without inspectSize()
});
});
キャッシュされた画像では正常に機能しますが、キャッシュされていない画像では機能しません。
この関数は、Image1に幅と高さが設定される前に呼び出されます。
私は何をすべきか?