2013-04-24 53 views
0

我有一個div元素,其自動高度可以說是300px。
點擊一個按鈕,我將它的高度設置爲500px。
我想將它的高度動畫回到其默認高度。 我知道的唯一解決方案是克隆div,存儲它的高度並相應地使用它。
一個jsfiddle example獲取div的自動高度而不克隆它

var elem = $("div").clone().height("auto").appendTo("body"); 
$('div').animate({"height": elem.height()}); 
elem.remove(); 

有沒有更好的辦法做到這一點?我不想克隆,因爲我的實際頁面上有大量元素。

更新: 我已創建another fiddle。如果元素還沒有載入,你將如何獲得元素的默認高度?

+0

難道你不能將高度設置爲自動? – box86rowh 2013-04-24 03:58:50

+0

如果我設置高度自動,那麼不會是任何動畫。我只能通過動畫設置高度。 – 2013-04-24 04:31:21

+0

我推薦克里斯的回答 – box86rowh 2013-04-24 16:48:50

回答

1

當您將高度設置爲靜態值時,您可以存儲原始高度,也可以將其作爲元素的數據屬性。 這樣:

$('button').click(function() { 
    $('div').data('origHeight',$('div').height()); 
    //Your code to set the height 
}); 

則:

$('div').animate({"height": $('div').data('origHeight')}); 
0

如何保存 「老高度」 某屬性?

這樣子。

$('#someDiv').attr('old-height',$('#someDiv').height()); 

你說什麼?