Родительский div получает active, дочерний элемент должен поменять стиль и класс
Имеется компонент боковой менюшки. Суть в том что подкатегории скрыты, если не кликнуть по стрелочки списка. А хотелось бы чтобы список раскрывался при клике на категорию.
По сути нужно чтобы при получении родителя класса active, класс и стиль дочернего менялся.
Было:
<div class="ba-blog-post">
<div class="ba-blog-post-content ba-categories-collapsed ba-categories-icon-rotated" style="--categories-collapse-height: 0;"><div/>
<div/>
<div class="ba-blog-post">...
<div class="ba-blog-post">...
Стало:
<div class="ba-blog-post active">
<div class="ba-blog-post-content" style="--categories-collapse-height:auto;"><div/>
<div/>
<div class="ba-blog-post">...
<div class="ba-blog-post">...
Страница с компонентом: https://decorstroy32.ru/catalog менюшка слева.
Ответы (1 шт):
Автор решения: EzioMercer
→ Ссылка
Такие вещи можно спокойно выносить в CSS и JS-ом просто менять класс:
const activateCheckbox = document.querySelector('#activate');
const parent = document.querySelector('.parent');
activateCheckbox.addEventListener('change', (e) => {
const methodName = activateCheckbox.checked ? 'add' : 'remove';
parent.classList[methodName]('active');
})
:root {
--parent-color: red;
--child-color: green;
}
.parent {
display: flex;
justify-content: center;
align-items: center;
width: 100px;
height: 100px;
background-color: var(--parent-color);
}
.child {
width: 50%;
height: 50%;
background-color: var(--child-color);
}
.parent.active {
--child-color: blue;
}
<label>
Activate
<input id="activate" type="checkbox">
</label>
<div class="parent">
<div class="child"></div>
</div>