2012-10-13 59 views
0

我有一組divs,通過它們包含的內容的高度來獲得它們的高度。我這樣做的原因是因爲我想切換這些div內的內容,但希望它們相應地調整它們的高度,這也與它們在動畫期間被調整的高度有關。問題是當我在高度加載新的內容時不能正確調整。我正在加載文本,我正在使用jquery .load並使用跨度來包含它所保存的外部頁面中的文本,如果由於某種原因,它包含文本,並因此失去了在.load上格式化的內容,不知道爲什麼。我需要幫助容器適應.load變化的內容。變量值的問題

http://klossal.com/brigham_about2.html那就是頁面,頂部動畫是使用.load並且沒有正確調整高度的頁面,您可以在啓動動畫時看到它。第二個動畫是使用內聯內容,容器調整它們的方式。

$("#outpt_main_open").click(function() { 
$('#header_img_outpt_main').load('/brigham_profiles2.html  
#header_karlene_salguero_photo'); 
$('#header_paragraph_outpt_main').load('/brigham_profiles2.html  
#header_txt_karlene_salguero'); 
$('#bio_txt_outpt_main').load('/brigham_profiles2.html #bio_txt_karelene_salguero'); 
$('#edu_txt_outpt_main').load('/brigham_profiles2.html #edu_txt_karelene_salguero'); 
$('#contact_txt_outpt_main').load('/brigham_profiles2.html 
#contact_txt_karelene_salguero'); 
profile_outpt_main_open_animation(); 

}); 

這是提示加載的按鈕。我是否需要首先發生負載,然後提示動畫功能?或者,我是否需要讓這些變量以新的加載內容進行重新採樣,還是他們自己這樣做?或者,這是完全不同的?任何幫助將不勝感激,這是讓我瘋狂。

回答

0

問題是,動畫功能profile_outpt_main_open_animation()正在使用元素的原始高度,而不是加載新內容後的新高度。要解決此問題,請在計算每個元素的頂部時使用.height()函數。

因此,例如,而不是

$("#profile_outpt_main_BIO").delay(330).animate({ 
    top: profile_outpt_main_HEADER_ht + 20 
}, 400); 

改用新的高度:

$("#profile_outpt_main_BIO").delay(330).animate({ 
    top: $("#profile_outpt_main_HEADER").height() + 20 
}, 400); 

你顯然不得不改變原來的高度,所有引用這個功能,而不僅僅是這裏展示的那個。