Изменение размера секции с разборным

У меня есть несколько 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>

Я хотел, чтобы вся секция расширялась вниз при срабатывании складного элемента, вместо этого ничего не происходит.

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

Chris W. 02.04.2019 15:54

Вам трудно представить, каким вы на самом деле хотите видеть результат и как вы хотите, чтобы он вел себя. Хочешь немного уточнить? Вам просто нужна панель, чтобы при нажатии на что-то панель расширялась вниз?

Chris W. 02.04.2019 15:58

я имею в виду, что расширяющаяся панель будет содержать другой контент. в тот момент, когда они рушатся, они делают это вверх, так как они находятся в нижней части своих div, я хочу, чтобы они рухнули вниз, таким образом увеличивая размер div, а содержимое под ним будет двигаться вниз, чтобы освободить место для складного.

Ryan Simandl 03.04.2019 14:54
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
3
88
0

Другие вопросы по теме