我发现这段代码在不久前创建了一个可扩展/可折叠的同时尝试构建一个可扩展的Div-Container,它迄今为止为我创造了奇迹(这里没有经验的爱好设计师)。
现在我想在其中一个中插入一个可扩展的div。我面临的问题是我无法弄清楚如何按顺序更改功能,因此它会自动重新调整第一个可扩展div的外部高度。我有一个示例,它应该在这里看起来像(如果我展开Collapsible 1-3它还应该展开Collapsible 1所以所有内容都可见):
可折叠1
我使用的代码可以在这里找到:
HTML:
<button id="button">Toggle Expand/Collapse</button>
<div id="wrapper" class="open">
<ul id="list">
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
</div>
CSS:
#wrapper {
background: #ccc;
overflow: hidden;
transition: height 200ms;
}
JS:
$(function() {
var b = $("#button");
var w = $("#wrapper");
var l = $("#list");
w.height(l.outerHeight(true));
b.click(function() {
if(w.hasClass('open')) {
w.removeClass('open');
w.height(0);
} else {
w.addClass('open');
w.height(l.outerHeight(true));
}
});
});
答案 0 :(得分:0)
您可以使用.slideDown
和.slideUp
代替计算身高。
$(document).ready(function() {
$('#button').click(function() {
$('#wrapper').toggleClass('open').slideToggle(200);
});
});
#wrapper {
background: #ccc;
overflow: hidden;
/*transition: height 200ms;*/
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="button">Toggle Expand/Collapse</button>
<div id="wrapper" class="open">
<ul id="list">
<li>Item</li>
<li>Item</li>
<li>Item</li>
<li>Item</li>
</ul>
</div>