參見下小提琴:jQueryUI的動畫與inital未定義高度
[編輯:更新撥弄=>http://jsfiddle.net/NYZf8/5/]
http://jsfiddle.net/NYZf8/1/(查看在不同的屏幕尺寸,以便理想地在圖像內適合%-width佈局div)
圖像應該開始從動畫完成後它正確出現的位置開始的動畫。 我不明白爲什麼第一個電話setMargin()
設置了一個負邊距,即使記錄的容器div和img的高度是非常相同的,在jqueryui show()
調用後將圖像設置在我想要的位置(從一開始上)。我的猜測是,不管怎樣,圖像高度畢竟是0/undefined,儘管它記錄的很好:?
JS:
console.log('img: ' + $('img').height());
console.log('div: ' + $('div').height());
$('img').show('blind', 1500, setMargin);
function setMargin() {
var marginTop =
($('img').closest('div').height() - $('img').height())/2;
console.log('marginTop: ' + marginTop);
$('img').css('marginTop', marginTop + 'px');
}
setMargin();
您是否在HTML中定義了img的高度?也許JS在圖像完全加載之前就開始燒製,所以瀏覽器抓錯了高度。 – skybondsor
我正在使用百分比調整大小的圖像 - 不知道這是否會在img標籤中設置高度和寬度。所以,不,我沒有,但我可以嘗試一下。 – kontur
@kontour這會觸發你的動畫,但它仍然不是很正確:http://jsfiddle.net/NYZf8/2/ – scottm