[英]jQuery animate height on element with min-height property?
我在CSS中設置了一個最小高度為300px的元素:
<!-- HTML -->
<div id="summary"></div>
<div id="collapse"></div>
/* CSS */
#summary { min-height: 300px }
當我單擊#collapse
元素時,我希望#summary
元素平滑地折疊到100px的高度。
$("#collapse").click(function() {
$("#summary").animate({ height: 100}, 1000);
});
但是,什么也沒有發生,我認為這是由於min-height屬性。
我已經在jQuery論壇上閱讀了此討論 ,但是我仍然想不出如何使#summary
div平滑地進行動畫-將最小高度設置為auto,因為它們提示div消失,然后重新出現! 有人可以幫忙嗎?
更新:我做了一個jsFiddle來演示問題 。
你可以嘗試做類似的事情
$("#collapse").click(function() {
var summary = $("#summary"),
height = summary.height();
summary
.css({ height: height + 'px', minHeight: 0 })
.animate({ height: 100}, 1000);
});
這個想法是重置min-height
並將css height
屬性設置為動畫之前元素本身的計算高度。
您需要在css中使用height
而不是min-height
因為將click
事件的高度降低到100且min-height是300。
更改
#summary { min-height: 300px }
至
#summary { height: 300px; }
如果需要使用最小寬度,則需要更改動畫中的最小寬度而不是高度。
在小提琴中嘗試一下: http : //jsfiddle.net/8jn7v/5/
改變這個:
height: 50
對此:
$('#summary').animate({
'min-height': 50+'px' // <--see the quotes at min-height and add pixels to it
}, 1000);
min-height
可以使您減小的高度不小於min-height
由於min-height
,您的元素限制為300px
,因此您必須設置min-height
而不是height
動畫
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.