<button class="btn-more">подробнее</button>
), как сделать чтобы открытие контента происходила на всех кнопках.const caseBtn = document.querySelector('.btn-more');
const caseCloseBtn = document.querySelector('.close__content');
const bodyPortfolio = document.querySelector('body');
const caseContent = document.querySelector('.portfolio__content');
caseBtn.addEventListener('click', (event) => {
event.stopPropagation();
caseContent.classList.add('case__active');
bodyPortfolio.classList.add('overflowhidden');
});
caseCloseBtn.addEventListener('click', (event) => {
event.stopPropagation();
caseContent.classList.remove('case__active');
bodyPortfolio.classList.remove('overflowhidden');
});
<div class="portfolio"><button class="btn-more">подробнее</button>...</div>
<div class="portfolio"><button class="btn-more">подробнее</button>...</div>
<div class="portfolio"><button class="btn-more">подробнее</button>...</div>
// Это не нужно. К body можно обратиться напрямую document.body
//const bodyPortfolio = document.querySelector('body');
[...document.querySelectorAll('.portfolio')].forEach(function(item){
const caseBtn = item.querySelector('.btn-more');
const caseCloseBtn = item.querySelector('.close__content');
const caseContent = item.querySelector('.portfolio__content');
caseBtn.addEventListener('click', (event) => {
event.stopPropagation();
caseContent.classList.add('case__active');
document.body.classList.add('overflowhidden');
});
caseCloseBtn.addEventListener('click', (event) => {
event.stopPropagation();
caseContent.classList.remove('case__active');
document.body.classList.remove('overflowhidden');
});
});
только на первую кнопку...
querySelector
querySelector()
находит и отдаёт первый элемент, подходящий селектору. Остальные остаются вне игры.querySelectorAll()
выберет все подходящие. Но потом коллекцию (NodeList) надо обходить циклом. Например, querySelectorAll(...).forEach(item => что-то-сделать-с-item)
.button.btn-more
, дальше исходя из этой кнопки находить в DOM-дереве ближайшие элементы, которым надо менять классы. Делегирование событий.