Вот базовый пример добавления и удаления классов CSS с помощью JS.
function topPanel() {
var topPanelEle = document.getElementById('topPanel')
var bottomPanelEle = document.getElementById('bottomPanel')
if (!topPanelEle.classList.contains('expanded')) { //To aviod multiple clicks
topPanelEle.classList.add('expanded');
}
bottomPanelEle.classList.remove('expanded');
}
function bottomPanel() {
var topPanelEle = document.getElementById('topPanel')
var bottomPanelEle = document.getElementById('bottomPanel')
if (!bottomPanelEle.classList.contains('expanded')) { //To aviod multiple clicks
bottomPanelEle.classList.add('expanded');
}
topPanelEle.classList.remove('expanded');
}
.top-panel {
padding: 16px;
background-color: red;
}
.bottom-panel {
padding: 16px;
background-color: blue;
}
.expanded {
height: 100px;
}
<a href="javascript:topPanel()">Expand Top Panel</a>
<div id="topPanel" class="top-panel">Top Panel</div>
<a href="javascript:bottomPanel()">Expand Top Panel</a>
<div id="bottomPanel" class="bottom-panel">Bottom Panel</div>
Теперь, в вашем случае, я не совсем уверен, потому что CSS не был задан, но в ваших добавленных классах (например, expanded
в моем случае)) может содержать height: 100% !important
и переопределять CSS-код по умолчанию, который был добавлен (например, top-panel
или bottom-panel
в моем случае), что может быть что-то вроде height: 50%
.Я также считаю, что проще использовать 2 функции или иметь 1 с параметром, поэтому я знаю, является ли это верхняя или нижняя панель прямо от того места, где она вызывается, если только у вас нет кнопки 1 в качестве переключателя.