У меня есть несколько div с работающими складными элементами, я хотел бы поместить их в раздел, который изменит размер при нажатии на складной элемент, указанный складной элемент находится внизу, поэтому размер изменяется
Я попробовал сценарий, который изменяет размер раздела при нажатии на складную кнопку, но никак не реагирует.
var drop = document.getElementsByClassName("drop");
var panel = document.getElementById("panel");
var i;
for (i = 0; i < drop.length; i++) {
drop[i].addEventListener("click", function() {
this.classList.toggle("active");
var collapse = this.previousElementSibling;
if (collapse.style.maxHeight) {
collapse.style.maxHeight = null;
} else {
collapse.style.maxHeight = collapse.scrollHeight + "px";
}
});
}
for (i = 0; i < drop.length; i++) {
drop[i].addEventListener("click", function() {
if (panel.style.maxHeight) {
panel.style.maxHeight = null;
} else {
panel.style.maxHeight = panel.scrollHeight + "px";
}
});
}#panel {
background-color: black;
float: center;
position: relative;
width: 500px;
height: 500px
}
#box1 {
background-color: red;
position: absolute;
bottom: 0;
left: 0;
}
#box2 {
background-color: yellow;
position: absolute;
bottom: 0;
right: 0;
float: right;
}
.drop {
background-color: #eee;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 15px;
}
.active, .drop:hover {
background-color: #ccc;
}
.collapse {
padding: 0 18px;
background-color: red;
max-height: 0;
overflow: hidden;
transition: max-height 0.2s ease-out;
}<div id=panel>
<div id = "box1">
<br>this is red</br>
<div class = "collapse">
<p>a drop</p>
</div>
<button class = "drop">view more</button>
</div>
<div id = "box2">
<br>this is yellow</br>
<div class = "collapse">
<p>a drop</p>
</div>
<button class = "drop">view more</button>
</div>
</div>Я хотел, чтобы вся секция расширялась вниз при срабатывании складного элемента, вместо этого ничего не происходит.
Вам трудно представить, каким вы на самом деле хотите видеть результат и как вы хотите, чтобы он вел себя. Хочешь немного уточнить? Вам просто нужна панель, чтобы при нажатии на что-то панель расширялась вниз?
я имею в виду, что расширяющаяся панель будет содержать другой контент. в тот момент, когда они рушатся, они делают это вверх, так как они находятся в нижней части своих div, я хочу, чтобы они рухнули вниз, таким образом увеличивая размер div, а содержимое под ним будет двигаться вниз, чтобы освободить место для складного.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Переместил ваш код в редактор фрагментов, чтобы помочь людям воспроизвести проблему. Изменил одну незначительную вещь, в которой у вас был getElementсById, где Element был во множественном числе, и это вызвало бы ошибку. Добро пожаловать в СО!