根据我在 Stack 上找到的信息,我已经完成了以下操作,以将我的 div 的高度从设定高度设置为自动高度并返回。
$('.parent').each(function(){
$(this).data('height',$(this).css('height'));
$(this).css('height','20px');
});
$('.parent').click(function(){
var el = $(this);
if ($(this).css('height') == '20px') {
$(this).css({
height: $(this).data('height'),
cursor: 'auto'
});
$(this).children('.closeButton').fadeIn();
}
});
$('.closeButton').click(function(){
var el = $(this).parent();
var button = $(this);
el.css('height','0');
setTimeout(function(){
el.css({
height: '20px',
cursor: 'pointer'
});
button.fadeOut();
},150);
});
$('.makeBigger').click(function(){
html = 'TONS OF CONTENT MAKES ME BIGGER<br/>TONS OF CONTENT MAKES ME BIGGER<br/>TONS OF CONTENT MAKES ME BIGGER<br/>';
$('#bigger').append(html);
$('#bigger').css('height','auto');
});
元素的 HTML 本质上是:
<div class="parent">
<div class="closeButton">close</div>
CONTENT
</div>
<div class="parent" id="bigger">
<div class="closeButton">close</div>
CONTENT
<div class="makeBigger">EVEN BIGGER</div>
</div>
CSS:
.parent {
background: red;
overflow: hidden;
cursor: pointer;
margin: 30px;
transition: all .5s;
-webkit-transition: all .5s;
-moz-transition: all .5s;
}
.closeButton {
display: none;
cursor: pointer;
float: right;
}
这工作得很好。但是,我的一个 div 包含一些用户可以与之交互的表单字段,进而将更多数据附加到该 div。如何进一步为该 div 设置动画以使其更大?我已经尝试过广泛使用最大最小高度和其他东西,但没有找到合适的脚本组合来做到这一点。